今天再給大家分享一些關于STM32串口中斷及DMA接收常見的幾個問題。
UART串口中斷接收
使能UART串口中斷之后,有接收到UART數(shù)據(jù),進入中斷,此時要清除RXNE接收標志位:
1)通過軟件向該RXNE標志位寫入零來清零;
2)通過對 USART_DR 寄存器執(zhí)行讀入操作將該位清零。
這里可以查看對應《參考手冊》,一般我們選擇第2種,通過讀取UART串口數(shù)據(jù)來清零。
1、中斷接收數(shù)據(jù)丟失
在UART串口中斷函數(shù)中,或者更高優(yōu)先級中斷函數(shù)中長時間執(zhí)行,導致接收丟失,所以,請勿在中斷函數(shù)中長時間執(zhí)行。
特別有些人,還在中斷函數(shù)添加延時函數(shù)。實際應用中,只要不是特殊情況,比如測試某個功能可以添加延時函數(shù),都不建議在中斷函數(shù)添加延時函數(shù)。
2、ORE上溢錯誤
ORE上溢錯誤是什么意思呢? 可能很多人不了解,簡單說就是:UART接收到有數(shù)據(jù),沒有去取,但又來了數(shù)據(jù),此時就會產生ORE上溢錯誤。(請看“參考手冊”)
其實,上面這種長時間在占用中斷,就會導致UART接收數(shù)據(jù)上溢。
很多人沒有在意這個,如果是使能了中斷接收,標志位沒有清除,又有ORE上溢錯誤的話,程序就會不停地進入UART中斷。(大家不妨試一下,看一下是不是你代碼一直在UART中斷里面不停運行)。
3、使能接收中斷前,先清除接收標志位
有時候,在程序初始化的時候,就會接收到數(shù)據(jù),這個時候建議大家先清除接收標志位再使能接收中斷。類似如下:
DMA接收串口數(shù)據(jù)
使用DMA接收串口數(shù)據(jù),相信很多朋友都知道。這個可以理解為使用隊列,或者FIFO的形式,防止因高優(yōu)先級中斷而打斷,導致接收數(shù)據(jù)丟失。
但很多人都遇到過,接收不到數(shù)據(jù),或者數(shù)據(jù)異常的情況。所以,這里同樣有需要注意的地方。
1、使能UART之前,先使能DMA相關配置
這個和清除標志位一樣的道理,使能UART之前,先使能DMA相關配置,防止在配置過程中有接收數(shù)據(jù)。
2、ORE上溢錯誤導致不能使用DMA接收數(shù)據(jù)
導致不能DMA接收不到數(shù)據(jù)的根源,有一種可能就是有ORE上溢錯誤。
若在串口初始化并使能后到 DMA 使能之前有數(shù)據(jù)來,MCU是不能接收的。如果此時數(shù)據(jù)寄存器 USART_DR 存在一個數(shù)據(jù),再來一個數(shù)據(jù),就會導致ORE上溢錯誤。
一旦產生上溢錯誤后,就無法再觸發(fā) DAM 請求,即使之后再啟動 DMA 也不行,無法觸發(fā) DMA 請求就無法將數(shù)據(jù)寄存器內的數(shù)據(jù)及時轉移走,如此陷入死鎖。這就是串口無法正常接收的原因。
所以,最后提醒大家,配置時,請一定要注意這些細節(jié)。
上一篇:STM32G474 逐波限流保護的實現(xiàn)
下一篇:STM32串口通信簡明知識
- 熱門資源推薦
- 熱門放大器推薦
設計資源 培訓 開發(fā)板 精華推薦
- LT1934IS6-1 3.3V 降壓轉換器的典型應用電路
- 用于 SRC Crowbar 的 NCV431A 可編程精密基準的典型應用
- LTC3415EUHF、3.3V 至 1.8V/7A 應用
- 使用 Richtek Technology Corporation 的 RT9063 的參考設計
- AD9246-105EBZ,用于評估 AD9246 14 位、105 MSPS 模數(shù)轉換器的評估板
- 無電流感應的 STC3115 電量計的典型應用
- DC1851A,使用具有集成終端的 LTC2872 雙路多協(xié)議收發(fā)器的演示板
- 具有 6.4A 輸入電流限制和 5V、30W 備份模式的 LTC3350EUHF 4.8V 至 12V、10A 超級電容器充電器的典型應用電路
- EVAL-ADXRS450Z-V,ADXRS450 評估板,±300 度/秒,1 軸數(shù)字輸出速率陀螺儀
- LTC3225EDDB 演示、薄型穩(wěn)壓雙節(jié) SuperCAP 充電器
- 蜂巢能源2025年試產半固態(tài)電池,2027年大批量供貨
- 激光雷達進化論:RoboSense如何持續(xù)領跑?
- 法雷奧-全景顯示技術 Panovision | 申報2025第七屆金輯獎中國汽車新供應鏈百強
- 公安部:目前我國市售汽車搭載的“智駕”系統(tǒng),都不具備“自動駕駛”功能
- 德賽西威-旗艦級AI智能座艙域控制器 | 申報2025第七屆金輯獎中國汽車新供應鏈百強
- Mobileye推出駕駛員監(jiān)測系統(tǒng)(DMS)技術 ,實現(xiàn)人與車輛協(xié)同駕駛
- 第三屆安富利汽車生態(tài)圈峰會盛大啟幕,雙城聯(lián)動激發(fā)智慧出行產業(yè)新動能
- Vicor Corporation 2025年第二季度財報:專利訴訟和解推動強勁增長
- 智能底盤2.0競賽,這家外資巨頭按下加速鍵
- GaN技術如何應用到人形機器人執(zhí)行關節(jié)?