實現的功能: 使用MDA方式把串口接受的數據在發送給串口(當然也可以做其他解析控制使用)
1. 先初始化 時鍾使用外部的晶振配置系統時鍾為48Mhz
2. 串口參數配置
3. 使能中斷
4. 配置串口接受DMA ,和串口發送MDA,發送DMA設置為低優先級
5. 配置好直接導出程序,打開工程,這個工程對外設的初始化已經完成
6. 接下來就是對功能的實現步驟
(1)配置串口為DMA接受模式
(2)配置串口的空閑中斷
(3)串口空閑中斷中與DMA使用,檢測是否接受完一幀數據包
串口空閑中斷操作偽代碼:
if(空閑中鍛) { 1. 停止MDA搬運數據 2. 讀取接受數據的長度(DMA中) 3. 數據處理解析控制操作 4. 開啟DMA 繼續搬運數據 }
串口空閑中斷處理,串口空閑中斷是當串口接受數據時候當有一段時間檢測到沒有數據來則產生中斷信號
xxxx_it.c 中斷函數文件:
main.c文件中:
通過Stm32CubeMX5 配置好外設后只需在工程中添加這幾行代碼即可實現