STM32H743+CubeMX-串口非空闲中断接收
生活随笔
收集整理的這篇文章主要介紹了
STM32H743+CubeMX-串口非空闲中断接收
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 一、前言
- 二、CubeMX
- 2.1、選擇串口
- 三、代碼
- 3.1、main.c
- 3.2、stm32f7xx_it.c
相關(guān)筆記:
STM32H743-串口重定向printf
一、前言
在實際工作上,串口連續(xù)中斷接收最靈活與實用。 如果項目上使用了RTOS,那么串口非空閑中斷接收+消息隊列就是一個完美的組合。如果項目上沒有使用RTOS,那么串口非空閑中斷接收+ringbuffer算法(FIFO)也是一個完美的組合。
二、CubeMX
2.1、選擇串口
接著,需要打開global interrupt。
為了更加穩(wěn)定,上拉USART3_RX引腳。
三、代碼
3.1、main.c
__HAL_UART_ENABLE_IT()打開串口3的接收非空閑中斷。
3.2、stm32f7xx_it.c
在中斷回調(diào)函數(shù)里,判斷是不是非空閑中斷。下圖摘自STM32F103項目,STM32H743的話,需要將huart3.Instance->DR改為huart3.Instance->RDR。當中斷時非空閑中斷時,將接收到的字符放入FIFO里,等解釋串口的代碼從FIFO里獲取即可。(中斷回調(diào)函數(shù)不能寫太多代碼,中斷回調(diào)函數(shù)必須快進快出,保證整個系統(tǒng)的實時性。)
總結(jié)
以上是生活随笔為你收集整理的STM32H743+CubeMX-串口非空闲中断接收的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RTX5 | 内存池03 - 共享内存用
- 下一篇: STM32H743+CubeMX-双路F