CH579串口接收數據問題超過15字節(jié)就無法接收完全,幫我看看我寫的又錯嗎?
數據長了就接收不到,后面的字節(jié)
熱門產品 :
CH641: PD及無線充電專用MCU
CH579串口接收數據問題超過15字節(jié)就無法接收完全,幫我看看我寫的又錯嗎?
數據長了就接收不到,后面的字節(jié)
建議先排查這些點:
1.你的uart_rxByte函數的運行時間是多少us?
2.你的uart_rxByte是否是中斷安全的,是否在其他地方調用了uart_rxByte。
函數運行時間不應該高過波特率計算出的字節(jié)時間,其他地方調用uart_Rxbyte最好先關中斷。
void uart_rxByte (uint8_t data)
{
??? fifo_in(&s_rxfifo, &data, 1, 1);?? ?
}
這個函數是這樣的就往里面寫數據
UART1_GetLinSTA()應該賦值給i,不然不算一句代碼。
ringbuf就更加不是中斷安全的了,你應該在外部讀取ringbuf的時候關閉中斷。
第二,你本可以直接放好幾個字節(jié),為什么要一個一個放,浪費時間。