CH579串口發(fā)送中斷錯誤問題

1. 沁恒微的CH579M開發(fā)板

2. 使用串口1,采用UART_II_THR_EMPTY中斷方式發(fā)送(中斷方式發(fā)送不阻塞CPU),打開FIFO

3. 間隔100ms發(fā)送32字節(jié)數(shù)據(jù),波特率115200


思路:

1. 發(fā)送時首先在R8_UART1_THR寄存器連續(xù)寫8字節(jié)

2. 等待FIFO發(fā)送完成,產(chǎn)生UART_II_THR_EMPTY中斷

3. 在中斷函數(shù)中繼續(xù)向R8_UART1_THR寄存器連續(xù)寫8字節(jié),直到發(fā)送完32字節(jié)。


問題:

發(fā)送數(shù)據(jù)大部分沒問題,偶爾會出現(xiàn)發(fā)送錯位的情況。

發(fā)送數(shù)據(jù)不變的情況下,錯誤的位置和錯誤數(shù)據(jù)都不變,出現(xiàn)時間隨機

每次錯誤數(shù)據(jù)都是8字節(jié),一個FIFO的數(shù)據(jù)

如圖:

image.png


有沒有其他中斷?是不是被其他高優(yōu)先級中斷打斷了


解決了,在“思路第一步”后面加10us延時就可以了,但是這個時間會鎖著波特率變化而變化,測試9600,38400,115200都是10us還可以。


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

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