HUỲNH NGỌC LÂM

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Họ và tên: Huỳnh Ngọc Lâm

Mã số sinh viên: 123200106


Đề thi giữa kỳ
Học phần Thực hành Vi điều khiển
Thời gian 60 phút

Câu 1: Giải thích vai trò của điện trở kéo lên và điện trở kéo xuống trong việc kết nối các
chân GPIO với ngoại vi. Giải thích các chế độ khi cấu hình chân GPIO là tín hiệu đầu vào số
(2 điểm)
Câu 2: Mô tả cách sử dụng hàm ngắt của vi điều khiển STM32F103C8T6 để xử lý các sự
kiện từ bên ngoài. (2 điểm)
Câu 3: Xây dựng ứng dụng cảnh báo gồm nút nhấn cảnh báo, nút dừng cảnh báo và 03 LED
xanh, vàng, và đỏ thể hiện tương ứng 03 mức cảnh báo khác nhau. Khi số lần nhấn nút bé
hơn hoặc bằng 5 thì đèn xanh sáng, khi số lần nhấn nút lớn 5 và bé hơn hoặc bằng 10 thì đèn
vàng nhấp nháy và khi số lần nhấn nút lớn hơn 10 thì đèn đỏ sáng. Yêu cầu vẽ sơ đồ nguyên
lý mạch và cấu hình phần cứng của từng chân IO (1 điểm), 02 lưu đồ thuật toán cho 02 cách
lập trình khác nhau (hỏi vòng/sử dụng ngắt) (2 điểm) và chương trình C có chú thích. Lập
trình theo phương thức:
 Hỏi vòng (1 điểm)
 Sử dụng ngắt (2 điểm)

Câu 1:

Điện trở kéo lên (Pull-up resistor) và điện trở kéo xuống (Pull-down resistor) đều đóng vai trò
quan trọng trong việc kết nối các chân GPIO với ngoại vi.

- Điện trở kéo lên (Pull-up resistor): Khi một chân GPIO được cấu hình như một đầu vào và nó không
được kết nối với bất kỳ điện áp nào, trạng thái của nó là “đang nổi” (floating), có nghĩa là nó có thể
đọc giá trị ngẫu nhiên do nhiễu. Điện trở kéo lên kết nối chân GPIO này với VCC (điện áp cung cấp),
do đó đặt giá trị mặc định của nó thành HIGH khi không có tín hiệu nào được kết nối.

- Điện trở kéo xuống (Pull-down resistor): Tương tự như điện trở kéo lên, nhưng nó kết nối chân
GPIO với GND (điện áp thấp), do đó đặt giá trị mặc định của nó thành LOW khi không có tín hiệu nào
được kết nối.

Cấu hình chân GPIO là tín hiệu đầu vào số:

 Khi cấu hình một chân GPIO là tín hiệu đầu vào số, chân GPIO có thể đọc giá trị từ các tín
hiệu ngoại vi kết nối.

 Trong chế độ này, chân GPIO sẽ đọc giá trị logic của tín hiệu ngoại vi và có thể thực hiện các
thao tác xử lý dựa trên giá trị đó.

 Điện trở kéo lên hoặc kéo xuống được sử dụng để đảm bảo rằng chân GPIO có một giá trị
đầu vào định rõ khi không có tín hiệu ngoại vi kết nối.

 Nếu không sử dụng điện trở kéo lên hoặc kéo xuống, chân GPIO có thể bị nhiễu (floating) và
có thể đọc giá trị không chính xác hoặc không đáng tin cậy.

Tóm lại, điện trở kéo lên và điện trở kéo xuống đảm bảo rằng chân GPIO có một giá trị đầu vào định
rõ khi không có tín hiệu ngoại vi kết nối và giúp tránh tình trạng nhiễu.
Câu 2:

Vi điều khiển STM32F103C8T6 của STMicroelectronics hỗ trợ các hàm ngắt (interrupt) để xử lý các sự
kiện từ bên ngoài. Đây là một phương pháp phổ biến để xử lý các tín hiệu hoặc sự kiện ngắn từ các
ngoại vi hoặc các nguồn tín hiệu bên ngoài khác. Dưới đây là mô tả cách sử dụng hàm ngắt trên vi
điều khiển STM32F103C8T6:

Bước 1: Cấu hình ngắt (interrupt):

 Đầu tiên, bạn cần cấu hình ngắt cho chân GPIO hoặc ngoại vi cần theo dõi sự kiện.

 Để làm điều này, bạn cần biết số ngắt (interrupt number) tương ứng với chân GPIO hoặc
ngoại vi muốn sử dụng. Thông tin này được chỉ định trong datasheet của vi điều khiển
STM32F103C8T6.

 Cấu hình ngắt bằng cách cài đặt bộ chọn ngắt (interrupt controller) và bộ chọn ưu tiên
(priority) cho ngắt đó. Bạn có thể sử dụng các hàm và thanh ghi tương ứng trong thư viện
HAL (Hardware Abstraction Layer) của STMicroelectronics để thực hiện cấu hình này.

Bước 2: Viết hàm xử lý ngắt:

 Tiếp theo, bạn cần viết một hàm để xử lý ngắt khi sự kiện xảy ra.

 Hàm này sẽ được gọi tự động bởi vi điều khiển khi ngắt xảy ra.

 Trong hàm này, bạn có thể thực hiện các tác vụ xử lý sự kiện mong muốn, chẳng hạn như đọc
dữ liệu từ ngoại vi, ghi dữ liệu vào bộ nhớ, hoặc thực hiện các thao tác điều khiển khác.

Bước 3: Đăng ký hàm xử lý ngắt:

 Cuối cùng, bạn cần đăng ký hàm xử lý ngắt với ngắt tương ứng.

 Điều này cho phép vi điều khiển biết rằng khi sự kiện xảy ra, hàm xử lý ngắt nào cần được
gọi.

 Bạn có thể sử dụng các hàm cung cấp bởi thư viện HAL để đăng ký hàm xử lý ngắt với ngắt
tương ứng.

Sau khi hoàn thành các bước trên, khi sự kiện từ bên ngoài xảy ra (ví dụ: tín hiệu thay đổi trạng thái
trên chân GPIO), vi điều khiển sẽ tự động ngắt chương trình chính và gọi hàm xử lý ngắt mà bạn đã
đăng ký.

You might also like