NEW
Font size
WorksheetsQuiz về Vi Điều Khiển
Total questions: 20
Worksheet time: 10mins
Sự khác biệt chính giữa vi xử lý (Microprocessor) và vi điều khiển (Microcontroller) là gì?
Vi xử lý có tốc độ cao hơn vi điều khiển
Vi điều khiển chỉ dùng trong máy tính
Vi xử lý cần các linh kiện ngoài (RAM, ROM, I/O), còn vi điều khiển tích hợp sẵn
Vi điều khiển không có CPU
Thành phần bắt buộc phải có trong một vi điều khiển là gì?
CPU
RAM
ROM/Flash
Tất cả các đáp án trên
Vi điều khiển thường được sử dụng nhiều nhất trong lĩnh vực nào?
Máy tính cá nhân
Máy chủ (Server)
Hệ thống nhúng
Thiết kế đồ họa
Ví dụ nào sau đây là vi điều khiển phổ biến?
Intel Core i5
AMD Ryzen 7
ARM Cortex-M
NVIDIA RTX
Bộ nhớ nào trong vi điều khiển dùng để lưu chương trình khi mất nguồn?
RAM
Cache
Flash/ROM
Register
Dòng vi điều khiển ARM nào sau đây chuyên dùng cho hệ thống nhúng và vi điều khiển?
ARM Cortex-A
ARM Cortex-R
ARM Cortex-M
ARM Neoverse
ARM Cortex-M thường sử dụng kiến trúc tập lệnh nào?
x86
RISC
CISC
VLIW
Bộ nhớ nào sau đây thường được tích hợp sẵn trong vi điều khiển ARM để lưu chương trình?
SRAM
Cache
Flash
HDD
Dòng STM32F nào sau đây thuộc phân khúc phổ thông, cân bằng giữa hiệu năng và chi phí, được dùng rất nhiều trong học tập và dự án nhúng?
STM32F0
STM32F1
STM32F7
STM32H7
Hãng nào sau đây sản xuất vi điều khiển dựa trên lõi ARM Cortex-M?
Intel
STMicroelectronics
NVIDIA
Qualcomm
Thư viện HAL (Hardware Abstraction Layer) của STM32 có mục đích chính là gì?
Truy cập trực tiếp thanh ghi phần cứng
Trừu tượng hóa phần cứng, giúp lập trình dễ và nhanh hơn
Thay thế hoàn toàn hệ điều hành nhúng
Chỉ dùng cho mô phỏng phần cứng
Phần mềm STM32CubeIDE là gì?
Trình mô phỏng STM32
Trình soạn thảo code C thuần
Môi trường phát triển tích hợp (IDE) cho STM32
Công cụ thiết kế mạch STM32
Công cụ nào trong STM32CubeIDE dùng để cấu hình chân GPIO, clock, peripheral?
Keil uVision
STM32CubeProgrammer
STM32CubeMX
Proteus
Hàm nào sau đây thuộc thư viện HAL và thường dùng để tạo trễ (delay)?
delay_ms()
wait()
HAL_Delay()
SysTick_Delay()
Khi sử dụng HAL trong STM32CubeIDE, đoạn code người dùng nên viết ở đâu để tránh bị mất khi regenerate code?
Bất kỳ chỗ nào trong file main.c
Trong các vùng /* USER CODE BEGIN */ và /* USER CODE END */
Trong file HAL library
Trong file startup
Hàm nào trong HAL dùng để ghi mức logic ra chân GPIO?
HAL_GPIO_ReadPin()
HAL_GPIO_TogglePin()
HAL_GPIO_WritePin()
HAL_GPIO_Init()
Hàm nào dùng để đọc trạng thái của một chân GPIO?
HAL_GPIO_GetPin()
HAL_GPIO_ReadPin()
HAL_GPIO_CheckPin()
HAL_GPIO_Input()
Để xuất mức HIGH (1) ra chân GPIO bằng HAL, tham số thứ 3 của hàm
HAL_GPIO_WritePin() phải là giá trị nào?
0
1
HIGH
LOW
Xét đoạn chương trình sau:
while (1)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_RESET);
HAL_Delay(500);
}
Chương trình trên có tác dụng gì?
LED PC13 chỉ bật một lần rồi tắt
LED PC13 luôn sáng
LED PC13 nhấp nháy liên tục với chu kỳ 1 giây
LED PC13 chỉ nhấp nháy 1 lần
Xét đoạn chương trình sau:
for (int i = 0; i < 3; i++)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_SET);
HAL_Delay(200);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_RESET);
HAL_Delay(200);
}
Kết quả đúng của đoạn chương trình là gì?
LED PA5 nhấp nháy 1 lần rồi dừng
mức LOW
LED PA5 nhấp nháy 2 lần rồi dừng
mức LOW
LED PA5 nhấp nháy 3 lần rồi dừng
mức LOW
LED PA5 nhấp nháy 4 lần rồi dừng
mức LOW
