Skip to content

dangvu2408/stm32Begin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thực hành với KIT STM32 NUCLEO-F401RE - Thực tập LUMI

© 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

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".

2.1. Các hàm API trong thư viện SDK_NUCLEO_F401RE

2.1.1. Module LED

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.

About

Learning Advance C in STM32 Kit (NUCLEO-F401RE)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages