© Bản quyền tài liệu thuộc về Lumi Vietnam.
Board NUCLEO-F401RE do hãng STMicroelectronics phát triển dành cho dòng STM32F4 Serial - với STM32F401RE MCU.
Thư viện SDK_NUCLEO_F401RE cung cấp các hàm API của các module ngoại vi như button, led, buzzer, sensor ... cho phép điều khiển và lấy thông tin trạng thái của ngoại vi. Nó được triển khai theo kiến trúc phân tầng OSI để dễ dàng tích hợp vào các ứng dụng sử dụng KIT STM32 NUCLEO và chuyển sang các dòng vi điều khiển STM32 khác.
Kiến trúc thư viện SDK_NUCLEO_F401RE bao gồm ba tầng chính:
a. Tầng điều khiển ngoại vi (Drivers): Tầng này cung cấp các files chứa các hàm API cho phép cấu hình, điều khiển và lấy thông tin trạng thái của các thanh ghi trong ngoại vi như GPIO, SPI, I2C, ...
b. Tầng thuật toán (Middeware): Tầng này cung cấp các files cấu hình, điều khiển và lấy thông tin trạng thái với từng module ngoại vi riêng biệt như led, button, buzzer ...
c. Tầng ứng dụng (Application): Tầng này cho phép người dùng gọi các thư viện ở tầng Drivers và Middleware để sử dụng cho các mục đích cần thiết. Ví dụ bạn muốn điều khiển trạng thái led RGB thì chỉ cần gọi file led bằng câu lệnh #include "led.h".
Tất cả các hàm dưới đây đều được định nghĩa ở file led.h:
a. Hàm khởi tạo module: Dùng để khởi tạo ngoại vi GPIO và TIMER ở chế độ Capture Compare của vi điều khiển STM32F401 để điều khiển độ sáng của LED RGB.
- Hàm nguyên mẫu:
void LedControl_Init(void) - Tham số truyền vào: Không.
- Giá trị trả về: Không.
b. Hàm điều khiển LED riêng biệt: Hàm này cho phép điều khiển độc lập ba kênh R, G, B của LED với cường độ sáng tùy chọn.
- Hàm nguyên mẫu:
void LedControl_SetColorIndividual(uint8_t led_id, led_color_t led_color, uint8_t led_level) - Tham số truyền vào:
| Tham số | Kiểu dữ liệu / Cấu trúc | Dải giá trị / Hằng số | Mô tả |
|---|---|---|---|
led_id |
uint8_t |
LED_BOARD_ID |
Điều khiển LED trên board |
LED_KIT_ID0 |
Điều khiển LED trên kit bên trái | ||
LED_KIT_ID1 |
Điều khiển LED trên kit bên phải | ||
led_color |
Kiểu cấu trúc led_color_t |
LED_COLOR_RED |
LED màu đỏ |
LED_COLOR_GREEN |
LED màu xanh lá | ||
LED_COLOR_BLUE |
LED màu xanh dương | ||
led_level |
uint8_t |
0 - 100 |
Điều khiển cường độ sáng LED |
- Giá trị trả về: Không.
c. Hàm điều khiển LED chung: Hàm này cho phép điều khiển chung cả ba kênh của led với cường độ sáng tùy chọn.
- Hàm nguyên mẫu:
void LedControl_SetColorGeneral(uint8_t led_id, led_color_t led_color, uint8_t led_level) - Tham số truyền vào:
| Tham số | Kiểu dữ liệu / Cấu trúc | Dải giá trị / Hằng số | Mô tả |
|---|---|---|---|
led_id |
uint8_t |
LED_BOARD_ID |
Điều khiển LED trên board |
LED_KIT_ID0 |
Điều khiển LED trên kit bên trái | ||
LED_KIT_ID1 |
Điều khiển LED trên kit bên phải | ||
led_color |
Kiểu cấu trúc led_color_t |
LED_COLOR_RED |
LED màu đỏ |
LED_COLOR_GREEN |
LED màu xanh lá | ||
LED_COLOR_BLUE |
LED màu xanh dương | ||
LED_COLOR_WHITE |
LED màu trắng | ||
LED_COLOR_BLACK |
LED màu đen | ||
led_level |
uint8_t |
0 - 100 |
Điều khiển cường độ sáng LED |
- Giá trị trả về: Không.
d. Hàm điều khiển bật/tắt tất cả LED: Hàm này có chức năng bật/tắt tất cả led cùng lúc.
- Hàm nguyên mẫu:
void LedControl_SetAllColor(uint8_t led_color, uint8_t led_level) - Tham số truyền vào:
| Tham số | Kiểu dữ liệu / Cấu trúc | Dải giá trị / Hằng số | Mô tả |
|---|---|---|---|
led_color |
Kiểu cấu trúc led_color_t |
LED_COLOR_RED |
LED màu đỏ |
LED_COLOR_GREEN |
LED màu xanh lá | ||
LED_COLOR_BLUE |
LED màu xanh dương | ||
LED_COLOR_WHITE |
LED màu trắng | ||
LED_COLOR_BLACK |
LED màu đen | ||
led_level |
uint8_t |
0 - 100 |
Điều khiển cường độ sáng LED |
- Giá trị trả về: Không.
e. Hàm điều khiển nháy LED: Hàm này có chức năng điều khiển nháy led theo số lần mong muốn.
- Hàm nguyên mẫu:
void LedControl_BlinkStart(uint8_t led_id, led_blink_type_t led_blink, uint8_t led_numRepeat, uint16_t led_interval, uint8_t led_lastState) - Tham số truyền vào:
| Tham số | Kiểu dữ liệu / Cấu trúc | Dải giá trị / Hằng số | Mô tả |
|---|---|---|---|
led_id |
uint8_t |
LED_BOARD_ID |
Điều khiển LED trên board |
LED_KIT_ID0 |
Điều khiển LED trên kit bên trái | ||
LED_KIT_ID1 |
Điều khiển LED trên kit bên phải | ||
LED_ALL_ID |
Điều khiển LED cả hai bên trên kit | ||
led_blink |
Kiểu cấu trúc led_color_t |
LED_COLOR_RED |
LED màu xanh đỏ |
LED_COLOR_GREEN |
LED màu xanh lá | ||
LED_COLOR_BLUE |
LED màu xanh dương | ||
LED_COLOR_WHITE |
LED màu trắng | ||
led_numRepeat |
uint8_t |
0 - 255 |
Số lần lặp lại bật/tắt LED. |
led_interval |
uint16_t |
0 - 65535 |
Chu kỳ bật/tắt LED. |
led_lastState |
uint8_t |
LED_COLOR_RED |
Trạng thái cuối màu đỏ |
LED_COLOR_GREEN |
Trạng thái cuối màu xanh lá | ||
LED_COLOR_BLUE |
Trạng thái cuối màu xanh dương | ||
LED_COLOR_WHITE |
Trạng thái cuối màu trắng | ||
LED_COLOR_BLACK |
Trạng thái cuối màu đen | ||
LED_COLOR_YELLOW |
Trạng thái cuối màu vàng |
- Giá trị trả về: Không.
f. Hàm gửi thông tin trạng thái LED: Gửi trạng thái của led là đang bật hay tắt và cường độ sáng lên phần mềm mô phỏng trên máy tính sử dụng giao tiếp UART.
- Hàm nguyên mẫu:
void LedControl_SendPacketRespond(uint8_t led_id, uint8_t led_color, uint8_t led_level) - Tham số truyền vào:
| Tham số | Kiểu dữ liệu / Cấu trúc | Dải giá trị / Hằng số | Mô tả |
|---|---|---|---|
led_id |
uint8_t |
LED_BOARD_ID |
Điều khiển LED trên board |
LED_KIT_ID0 |
Điều khiển LED trên kit bên trái | ||
LED_KIT_ID1 |
Điều khiển LED trên kit bên phải | ||
LED_ALL_ID |
Điều khiển LED cả hai bên trên kit | ||
led_blink |
Kiểu cấu trúc led_color_t |
LED_COLOR_RED |
LED màu xanh đỏ |
LED_COLOR_GREEN |
LED màu xanh lá | ||
LED_COLOR_BLUE |
LED màu xanh dương | ||
LED_COLOR_WHITE |
LED màu trắng | ||
led_numRepeat |
uint8_t |
0 - 255 |
Số lần lặp lại bật/tắt LED. |
led_interval |
uint16_t |
0 - 65535 |
Chu kỳ bật/tắt LED. |
led_lastState |
uint8_t |
LED_COLOR_RED |
Trạng thái cuối màu đỏ |
LED_COLOR_GREEN |
Trạng thái cuối màu xanh lá | ||
LED_COLOR_BLUE |
Trạng thái cuối màu xanh dương | ||
LED_COLOR_WHITE |
Trạng thái cuối màu trắng | ||
LED_COLOR_BLACK |
Trạng thái cuối màu đen | ||
LED_COLOR_YELLOW |
Trạng thái cuối màu vàng |
- Giá trị trả về: Không.
