MIP201DễKỳ 7Chuyên ngành Cập nhật 25/03/2026

Microcontroller Programming - MIP201

Lập trình vi điều khiển (Microcontroller Programming - MIP201) là một trong những cột mốc quan trọng trong lộ trình đào tạo kỹ sư IoT và hệ thống nhúng tại Đại học FPT. Môn học tập trung vào việc hiện thực hóa các dự án thực tế trên nền tảng kiến trúc Arm Cortex-M4 thông qua kit phát triển ST Nucleo F401RE và hệ sinh thái Mbed API (Mbed OS).

226Câu hỏi
2Bộ đề
1Chủ đề
5,01 đánh giá

Câu hỏi của môn

124/226 câuCòn 102
105What is the primary characteristic of serial communication?5 lựa chọnDễ95% trả lời đúng
ATransmits multiple bits simultaneously
BAlways requires a dedicated clock signal
COnly used for short-haul communication
DTransmits data one bit at a time, sequentially
ERequires many wires and large connectors
Lời giải
Tính chất chính của giao tiếp serial là truyền dữ liệu một bit một lần, theo thứ tự. Điều này có nghĩa là dữ liệu được truyền một bit một lần, theo thứ tự từ trái sang phải hoặc từ trên xuống dưới. Giao tiếp serial thường được sử dụng trong các ứng dụng truyền thông như truyền dữ liệu qua cáp mạng, truyền tín hiệu qua không khí v.v. Giao tiếp serial có ưu điểm là dễ dàng thực hiện và không yêu cầu nhiều nguồn lực, nhưng nó cũng có nhược điểm là tốc độ truyền dữ liệu chậm hơn so với giao tiếp parallel.
Mở trang câu hỏi này →
Avoid stop (void)
Bint putc(int ch, FILE *stream)
Cfrequency (int Hz)
DI2C (PinName sda, PinName scl)
Evoid start (void)
Lời giải
Để trả lời câu hỏi này, chúng ta cần hiểu về các hàm cơ bản của API Mbed được sử dụng để cấu hình hoặc tạo khung cho giao tiếp I2C. Các hàm này bao gồm việc khởi động, dừng, bắt đầu và cấu hình tần số giao tiếp. Tuy nhiên, hàm không phải là một phần của các hàm cơ bản này là hàm putc(int ch, FILE *stream). Hàm này được sử dụng để đưa ký tự vào một luồng dữ liệu, nhưng nó không liên quan trực tiếp đến việc cấu hình hoặc tạo khung cho giao tiếp I2C. Thay vào đó, nó thuộc về các hàm cơ bản của API Mbed được sử dụng để nhập/ xuất dữ liệu.
Mở trang câu hỏi này →
A1024
B3.3
C0
D1
E256
Lời giải
Khi sử dụng DigitalIn Interface để đọc giá trị từ một chân vào, nó sẽ trả về một giá trị integer. Giá trị này phụ thuộc vào mức điện áp trên chân vào. Nếu mức điện áp trên chân vào là 0V, DigitalIn Interface sẽ trả về giá trị 0. Điều này là vì DigitalIn Interface thường sử dụng mức điện áp 3.3V hoặc 5V làm mức điện áp tham chiếu. Khi mức điện áp trên chân vào bằng 0V, nó sẽ được coi là mức điện áp thấp, và DigitalIn Interface sẽ trả về giá trị 0. Điều này giúp người lập trình viên dễ dàng xác định trạng thái của chân vào.
Mở trang câu hỏi này →
AFinished
BReady
CRunning
DBlocked
Lời giải
Trong quản lý nhiệm vụ của hệ điều hành thời gian thực (RTOS), trạng thái 'Blocked' cho biết một nhiệm vụ đang chờ đợi sự kiện trước khi nó có thể tiếp tục thực hiện. Khi một nhiệm vụ đang chạy và cần chờ đợi một sự kiện nhất định, chẳng hạn như nhận một tín hiệu từ thiết bị ngoại vi hoặc chờ đợi một dữ liệu được tạo ra, nó sẽ chuyển sang trạng thái 'Blocked'. Trong trạng thái này, nhiệm vụ sẽ không được thực hiện và sẽ chờ đợi sự kiện mong muốn. Khi sự kiện xảy ra, nhiệm vụ sẽ được kích hoạt trở lại và chuyển sang trạng thái 'Ready' để chờ đợi thời gian thực hiện.
Mở trang câu hỏi này →
109What is the fundamental architectural basis of the Arm architecture family?5 lựa chọnDễ80% trả lời đúng
APipeline array processor architectures
BCISC-based processor architectures
CRISC-based processor architectures
DVLIW-based processor architectures
EStack-based processor architectures
Lời giải
Câu hỏi này hỏi về cơ sở kiến trúc cơ bản của gia đình kiến trúc Arm. Để trả lời câu hỏi này, chúng ta cần hiểu về các loại kiến trúc máy tính khác nhau. RISC (Reduced Instruction Set Computing) là một loại kiến trúc máy tính đơn giản, nơi mỗi lệnh chỉ thực hiện một hành động đơn giản. Điều này giúp tăng tốc độ và giảm chi phí sản xuất. Arm là một trong những ví dụ nổi bật về kiến trúc RISC. Nó được thiết kế để cung cấp hiệu suất cao và tiết kiệm năng lượng, làm cho nó trở thành lựa chọn phổ biến cho các thiết bị di động và máy tính cá nhân.
Mở trang câu hỏi này →
110What is normally used to access external pins on a microcontroller?5 lựa chọnTrung bình65% trả lời đúng
ASystem Timer (SysTick)
BAnalog-to-Digital Converter (ADC)
CGeneral-Purpose Input/Output (GPIO)
DDigital-to-Analog Converter (DAC)
EUniversal Asynchronous Receiver/Transmitter (UART)
Lời giải
Để truy cập vào các chân ngoại vi trên một vi điều khiển, người ta thường sử dụng General-Purpose Input/Output (GPIO). GPIO là một loại cổng vào/ra có thể được sử dụng để kết nối với các thiết bị ngoại vi như đèn LED, nút bấm, cảm biến v.v. Nó cho phép người lập trình đọc giá trị từ các chân vào và viết giá trị vào các chân ra. Điều này cho phép người lập trình tương tác với thế giới bên ngoài và tạo ra các ứng dụng thực tế. Ngoài ra, GPIO cũng có thể được sử dụng để tạo ra các giao tiếp với các thiết bị khác như máy tính, điện thoại di động v.v. Tóm lại, GPIO là một công cụ quan trọng trong lập trình vi điều khiển và được sử dụng rộng rãi trong nhiều ứng dụng khác nhau.
Mở trang câu hỏi này →
111The Mbed API provides libraries for what types of conversion?5 lựa chọnDễ100% trả lời đúng
AOnly DAC
BOnly ADC
COnly Multiplexer
DOnly ADC
EBoth ADC and DAC
Lời giải
Mbed API cung cấp các thư viện cho các loại chuyển đổi khác nhau. Chuyển đổi Analog-to-Digital (ADC) là quá trình chuyển đổi tín hiệu analog thành tín hiệu số. Chuyển đổi Digital-to-Analog (DAC) là quá trình chuyển đổi tín hiệu số thành tín hiệu analog. Trong nhiều ứng dụng, cả hai loại chuyển đổi này đều cần thiết. Ví dụ, trong hệ thống điều khiển tự động, ADC được sử dụng để đo các tham số như nhiệt độ, áp suất, v.v. Sau đó, DAC được sử dụng để điều khiển các thiết bị như động cơ, đèn LED, v.v. Vì vậy, Mbed API cung cấp các thư viện cho cả hai loại chuyển đổi này để hỗ trợ các nhà phát triển trong việc tạo ra các ứng dụng phức tạp.
Mở trang câu hỏi này →
112What are the two signal lines required for I2C communication?5 lựa chọnDễ80% trả lời đúng
ATX and RX
BSCLK and CS
CCOTI and CITO
DMISO and MOSI
ESCL (Serial Clock) and SDA (Serial Data)
Lời giải
Để thực hiện giao tiếp I2C, cần có hai đường tín hiệu quan trọng. Đường tín hiệu đầu tiên là SCL (Serial Clock), đây là tín hiệu đồng hồ giúp đồng bộ hóa dữ liệu được truyền qua đường tín hiệu thứ hai. Đường tín hiệu thứ hai là SDA (Serial Data), đây là tín hiệu dữ liệu chính chứa thông tin được truyền qua giao tiếp I2C. Tín hiệu SCL và SDA được sử dụng để truyền dữ liệu giữa các thiết bị trong hệ thống I2C. Khi một thiết bị muốn gửi dữ liệu, nó sẽ gửi dữ liệu qua đường tín hiệu SDA và đồng thời gửi tín hiệu đồng hồ SCL để đồng bộ hóa dữ liệu. Điều này giúp đảm bảo rằng dữ liệu được truyền chính xác và không bị nhầm lẫn.
Mở trang câu hỏi này →
113How many wires typically comprise the SPI serial bus?5 lựa chọnDễ89% trả lời đúng
ATwo-wire
BFour-wire
CThree-wire
DFive-wire
EEight-wire
Lời giải
Mạng SPI (Serial Peripheral Interface) là một giao thức truyền thông được sử dụng để giao tiếp giữa các thiết bị điện tử. Mạng SPI thường bao gồm bốn dây: SCK (đồng hồ), MOSI (đầu ra), MISO (đầu vào), và GND (điện thế mặt đất). Dây SCK được sử dụng để đồng bộ hóa dữ liệu, dây MOSI được sử dụng để truyền dữ liệu từ thiết bị chủ sang thiết bị khách, dây MISO được sử dụng để truyền dữ liệu từ thiết bị khách trở lại thiết bị chủ, và dây GND được sử dụng để cung cấp điện thế mặt đất cho cả hai thiết bị. Vì vậy, mạng SPI thường bao gồm bốn dây.
Mở trang câu hỏi này →
AVS Code
BMbed CLI
CKeil uVision
DEclipse
Lời giải
Môi trường phát triển tích hợp (IDE) dành riêng cho ứng dụng Mbed OS 5 là gì? Môi trường phát triển tích hợp (IDE) này có khả năng tự động phát hiện các bảng điều khiển Mbed được hỗ trợ. Trong số các lựa chọn trên, Keil uVision là môi trường phát triển tích hợp (IDE) phù hợp nhất cho ứng dụng Mbed OS 5. Keil uVision là một công cụ phát triển phần mềm mạnh mẽ được thiết kế để hỗ trợ việc phát triển và thử nghiệm các ứng dụng Mbed OS 5. Nó cung cấp các tính năng như tự động phát hiện các bảng điều khiển Mbed được hỗ trợ, hỗ trợ các công cụ phát triển phần mềm khác nhau và cung cấp các công cụ thử nghiệm mạnh mẽ.
Mở trang câu hỏi này →
115Which of the following best describes the meaning of '0' in a digital system?4 lựa chọnDễ94% trả lời đúng
AAlternating signal
BHigh voltage level
CGround or 0V
DPositive voltage supply
Lời giải
Trong hệ thống số hóa, '0' thường được biểu diễn bằng một mức điện áp thấp hơn mức điện áp cao. Nó không phải là tín hiệu thay đổi liên tục hay mức điện áp cao như một số người nghĩ. Thay vào đó, '0' thường được biểu diễn bằng mức điện áp gần như bằng 0V, được gọi là mức điện áp mặt đất hoặc mức điện áp 0V. Điều này cho phép hệ thống số hóa xử lý các số và dữ liệu một cách chính xác và hiệu quả. Mức điện áp mặt đất thường được sử dụng làm điểm tham chiếu để đo các mức điện áp khác trong hệ thống.
Mở trang câu hỏi này →
ADMA controller
BGPIOIO controller
CNVIC (Nested Vectored Interrupt Controller)
DCache controller
Lời giải
Máy tính Cortex-M4 sử dụng một số bộ điều khiển khác nhau để quản lý các hoạt động khác nhau. Trong đó, bộ điều khiển NVIC (Nested Vectored Interrupt Controller) có nhiệm vụ quản lý các tín hiệu ngắt và ưu tiên của chúng. Bộ điều khiển này cho phép hệ thống xử lý các tín hiệu ngắt một cách hiệu quả và nhanh chóng, giúp tăng cường tính ổn định và độ tin cậy của hệ thống. Các tín hiệu ngắt được xử lý bởi NVIC sẽ được ưu tiên dựa trên mức độ khẩn cấp của chúng, giúp đảm bảo rằng các hoạt động quan trọng được thực hiện trước khi các hoạt động không quan trọng.
Mở trang câu hỏi này →
ASimplex
BMaster/slave
CPolling
DFull-duplex
EHalf-duplex
Lời giải
Trong giao tiếp SPI, dữ liệu có thể được chuyển tiếp theo cả hai chiều hoặc cả hai chiều cùng lúc. Đặc tính này được gọi là "Full-duplex". Full-duplex cho phép cả thiết bị gửi và nhận dữ liệu đồng thời, giúp tăng tốc độ truyền dữ liệu và giảm thời gian phản hồi. Điều này đặc biệt hữu ích trong các ứng dụng yêu cầu tốc độ truyền dữ liệu cao, chẳng hạn như giao tiếp giữa các thiết bị điện tử. Full-duplex cũng cho phép thiết bị nhận dữ liệu ngay lập tức sau khi gửi dữ liệu, giúp giảm thiểu thời gian trễ và tăng cường hiệu suất giao tiếp.
Mở trang câu hỏi này →
118Which Mbed API class is used to control a digital output pin?4 lựa chọnDễ89% trả lời đúng
ABusIn
BDigitalOut
CAnalogOut
DDigitalIn
Lời giải
Để kiểm soát một cổng đầu ra số (digital output pin), bạn cần sử dụng lớp API Mbed phù hợp. Trong các lựa chọn đã cho, lớp API được sử dụng để kiểm soát một cổng đầu ra số là DigitalOut. Lớp DigitalOut cho phép bạn tạo một đối tượng có thể được sử dụng để kiểm soát một cổng đầu ra số, điều này rất hữu ích khi bạn cần tạo một ứng dụng có thể điều khiển các thiết bị điện tử như đèn LED, động cơ, v.v. Bạn có thể sử dụng phương thức write() để đặt giá trị của cổng đầu ra số, hoặc sử dụng phương thức write_digital() để đặt giá trị của cổng đầu ra số theo dạng số nguyên. Điều này giúp bạn có thể kiểm soát cổng đầu ra số một cách chính xác và hiệu quả.
Mở trang câu hỏi này →
119What is the function of the Program Counter (PC) register?4 lựa chọnDễ94% trả lời đúng
AStores the address of the current instruction
BStores stack frame data
CStores interrupt priority levels
DStores temporary arithmetic data
Lời giải
Bộ đếm chương trình (Program Counter, PC) là một trong những bộ đệm quan trọng trong hệ thống máy tính. Nó có chức năng lưu trữ địa chỉ của lệnh hiện tại đang được thực hiện. Khi máy tính thực hiện một lệnh, bộ đếm chương trình sẽ tự động cập nhật địa chỉ của lệnh tiếp theo cần được thực hiện. Điều này cho phép máy tính thực hiện các lệnh theo thứ tự và đảm bảo rằng các lệnh được thực hiện một cách chính xác và hiệu quả. Bộ đếm chương trình đóng vai trò quan trọng trong việc quản lý luồng thực thi của máy tính và giúp đảm bảo rằng các lệnh được thực hiện một cách tuần tự.
Mở trang câu hỏi này →
ABatch OS
BMulti-user OS
CEmbedded OS
DSingle-user OS
Lời giải
Một hệ điều hành cho phép nhiều người dùng truy cập hệ thống đồng thời được gọi là hệ điều hành đa người dùng (Multi-user OS). Hệ điều hành này cho phép nhiều người dùng có thể truy cập vào hệ thống cùng lúc, mỗi người dùng có tài khoản riêng và có thể thực hiện các tác vụ độc lập mà không ảnh hưởng đến người dùng khác. Ví dụ, hệ điều hành Unix và Linux là các ví dụ về hệ điều hành đa người dùng.
Mở trang câu hỏi này →
ALink
BCompile
CAssemble
DExecute
Lời giải
Bước trong quá trình tạo chương trình kết hợp các tệp đối tượng và thư viện để tạo ra chương trình thực thi được. Khi lập trình viên đã viết xong mã nguồn và sử dụng trình biên dịch để chuyển đổi mã nguồn thành mã máy, thì các tệp đối tượng và thư viện sẽ được sử dụng để tạo ra chương trình thực thi. Bước này được gọi là quá trình liên kết, trong đó các tệp đối tượng và thư viện được kết hợp lại để tạo ra một tệp thực thi duy nhất. Quá trình liên kết giúp tạo ra chương trình thực thi được có thể được thực thi trên máy tính.
Mở trang câu hỏi này →
122What is the function of the B2 push-button on the STM32 Nucleo - F411RE board?5 lựa chọnTrung bình68% trả lời đúng
APower ON/OFF
BFirmware upgrade initiation
CButton name: RESET
DBoot selection
EButton name: USER
Lời giải
B2 là một nút bấm trên bo mạch STM32 Nucleo - F411RE. Nút này có chức năng đặc biệt, đó là nút USER. Khi nhấn nút này, nó sẽ kích hoạt một số chức năng nhất định trên bo mạch. Trong trường hợp này, nút USER được sử dụng để thực hiện các tác vụ như khởi động lại hệ thống, cập nhật firmware, v.v. Nó giúp người dùng có thể dễ dàng tương tác với bo mạch và thực hiện các tác vụ cần thiết. Ngoài ra, nút USER cũng có thể được sử dụng để thực hiện các tác vụ khác như đọc dữ liệu từ bo mạch, v.v. Tóm lại, nút B2 (USER) là một phần quan trọng của bo mạch STM32 Nucleo - F411RE và giúp người dùng có thể dễ dàng tương tác với nó.
Mở trang câu hỏi này →
123What does Pulse-width modulation (PWM) use mode to modulate an amplitude?5 lựa chọnTrung bình67% trả lời đúng
AThe Prescaler value
BVoltage level
CThe frequency of the clock source
DThe period of the pulse
EThe width of a pulse
Lời giải
Pulse-width modulation (PWM) là một phương pháp điều chế tần số để điều khiển độ lớn của một tín hiệu. Trong PWM, tín hiệu được tạo thành từ một chuỗi các xung điện có độ rộng khác nhau. Tín hiệu PWM được tạo ra bằng cách điều chỉnh độ rộng của xung điện, thay vì thay đổi mức điện áp hoặc tần số của xung điện. Điều này cho phép tạo ra các tín hiệu có độ lớn khác nhau mà không cần thay đổi mức điện áp hoặc tần số của xung điện. Trong PWM, độ rộng của xung điện được sử dụng để điều chế độ lớn của tín hiệu. Do đó, PWM sử dụng độ rộng của xung điện để điều chế độ lớn của tín hiệu.
Mở trang câu hỏi này →
124Why is analog-to-digital converters (ADC) necessary in embedded systems?4 lựa chọnDễ100% trả lời đúng
ABecause processors can only process analog signals.
BBecause processors operate with digital signals while real-world signals are often analog
CBecause analog signal processing is faster than digital signals
DBecause ADC increases memory capacity
Lời giải
ADC (Chuyển đổi Analog sang Digital) là một phần quan trọng trong các hệ thống tích hợp (embedded systems) vì chúng cho phép chuyển đổi tín hiệu analog thành tín hiệu số. Điều này là cần thiết vì các bộ xử lý (processors) chỉ có thể xử lý tín hiệu số, trong khi tín hiệu từ thế giới thực tế thường là tín hiệu analog. Ví dụ, tín hiệu từ cảm biến nhiệt độ, áp suất, v.v. thường là tín hiệu analog. ADC giúp chuyển đổi tín hiệu analog này thành tín hiệu số mà bộ xử lý có thể hiểu và xử lý. Điều này cho phép các hệ thống tích hợp thực hiện các tác vụ phức tạp như đo lường, điều khiển và phân tích dữ liệu.
Mở trang câu hỏi này →