MCU+CH582F,串口收发问题

波特率115200,MCU串口发送18个字节数据,CH582中断接收,7字节触发,UART_II_RECV_RDY里只接收到了前面7个字节,中间7字节没有接收,剩下数据在UART_II_RECV_TOUT里有接收到,就是中间的7字节数据没有接收到,想问一下是什么原因导致的?

中断中UART1_RecvByte读取fifo中字节数据后,不是会自动清除fifo对应字节数据吗,为什么读出来的数据都是重复相同的?


icon_rar.gifCompoundDev.rar

您好,有时间帮忙看看是哪出了问题吗?


可能是,代码收到数据之后存放在了RxBuff,但是下一次过来接收数据,RxBuff的数据又被覆盖了,所以表现出来在RDY的数据是最后一次进入的数据。

需要将RxBuff保存的数据进行移位,防止覆盖。或者直接使用例程收到数据后将数据直接发送出去,判断是否接收数据完整。

代码里面的len作为全局变量使用到的地方太多,如果不是特意这样写,建议换一个参数。


谢谢,解决了,有些变量逻辑没处理好


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