Hàm ngắt nhận chuỗi kí tự trên MCU STM32F103C8T6

Đầu tiên chúng ta sẽ kiểm tra hiện tại chúng ta nhận kí tự ngắt ở UART nào.

Nếu biến đếm kí tự = 0, thì reset lại mảng đệm bằng cách gán từng phần tử trong mảng kí tự ‘\0’

Tiếp theo, kiểm tra kí tự vừa nhận được có khác với phải là kí tự 13 (kí tự xuống dòng) hay không. Nếu khác với kí tự 13 thì chúng ta sẽ tăng biến đếm kí tự lên 1, sau đó gán kí tự vừa nhận Rx_data[0] được vào mảng đệm Rx_Buffer[Rx_indx++];. Nếu nó là kí thự 13 (kí tự xuống dòng) chúng ta sẽ đảo trạng thái của led tại chân PC13 và truyền lại chuỗi “BAT” lên máy tính.

Ở cuối chương trình ngắt, chúng ta khai báo lại hàm ngắt nhận 1 kí tự HAL_UART_Receive_IT(&huart1, (uint8_t*) Rx_data, 1);

Ở trong hàm main, đặt hàm HAL_UART_Receive_IT(&huart1, (uint8_t*) Rx_data, 1); trước hàm while(1)

Chúc các bạn thành công! 

Xem thêm: Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32 tại đây.

[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]