CH579串口接收数据问题

CH579串口接收数据问题超过15字节就无法接收完全,帮我看看我写的又错吗?

数据长了就接收不到,后面的字节




1638172591159563.png

1638172591102656.png


建议先排查这些点:

1.你的uart_rxByte函数的运行时间是多少us?

2.你的uart_rxByte是否是中断安全的,是否在其他地方调用了uart_rxByte。


函数运行时间不应该高过波特率计算出的字节时间,其他地方调用uart_Rxbyte最好先关中断。



void uart_rxByte (uint8_t data)
{
    fifo_in(&s_rxfifo, &data, 1, 1);    
}

这个函数是这样的就往里面写数据


UART1_GetLinSTA()应该赋值给i,不然不算一句代码。

ringbuf就更加不是中断安全的了,你应该在外部读取ringbuf的时候关闭中断。

第二,你本可以直接放好几个字节,为什么要一个一个放,浪费时间。


只有登录才能回复,可以选择微信账号登录