CH579串口接收数据问题超过15字节就无法接收完全,帮我看看我写的又错吗?
数据长了就接收不到,后面的字节
热门产品 :
CH390:以太网控制器芯片
CH579串口接收数据问题超过15字节就无法接收完全,帮我看看我写的又错吗?
数据长了就接收不到,后面的字节
建议先排查这些点:
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的时候关闭中断。
第二,你本可以直接放好几个字节,为什么要一个一个放,浪费时间。