ch592 uart 接收丟數(shù)據(jù)

uart 配置如下

?image.pngimage.png

出現(xiàn)問題:

與傳感器通過uart通訊時,如果傳感器發(fā)送數(shù)據(jù)間隔260ms左右,mcu會出現(xiàn)數(shù)據(jù)丟失,每次丟失字符串末尾1到2個字符。


判斷產(chǎn)生問題的原因:

目前懷疑是接收緩沖區(qū)溢出了,還請指點如何確定是緩沖區(qū)溢出導(dǎo)致的還是其他原因?能否改緩沖區(qū)長度?是中斷處理能力不足還是其他?十分感謝


判斷依據(jù):

用邏輯分析儀抓數(shù)據(jù),確定發(fā)送的數(shù)據(jù)沒問題,同時通過串口打印收到的數(shù)據(jù),數(shù)據(jù)出現(xiàn)丟失。





image.png

查了下文檔,串口輸出的overflow,這樣能確定是fifo溢出了吧,有什么辦法解決這個問題?


溢出一般是MCU繁忙,不能及時收取串口FIFO中緩存的數(shù)據(jù)所致。

排查建議:

①計算該UART波特率下收發(fā)包所需時長,加上數(shù)據(jù)轉(zhuǎn)存、計算、轉(zhuǎn)發(fā)等功能的時間開銷,查看是否在理論上可以在第二次發(fā)包前處理完第一包數(shù)據(jù)。

在中斷服務(wù)函數(shù)中增加IO翻轉(zhuǎn)的方式,通過邏輯分析抓波形,監(jiān)測UART中斷進(jìn)入的頻次是否正常、是否有其他中斷占用了過長的時間??梢酝ㄟ^配置搶占優(yōu)先級的方式提高串口中斷的優(yōu)先級。

中斷服務(wù)函數(shù)中的串口打印信息全都刪去,串口打印需要占用比較長的時間。中斷服務(wù)函數(shù)中只做數(shù)據(jù)拷貝,快進(jìn)快出。

④是否有操作flash的代碼塊,注意操作flash期間會自動關(guān)閉總中斷。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频