波特率115200,MCU串口发送18个字节数据,CH582中断接收,7字节触发,UART_II_RECV_RDY里只接收到了前面7个字节,中间7字节没有接收,剩下数据在UART_II_RECV_TOUT里有接收到,就是中间的7字节数据没有接收到,想问一下是什么原因导致的?
热门产品 :
CH592: RISC-V内核BLE5.4无线MCU
波特率115200,MCU串口发送18个字节数据,CH582中断接收,7字节触发,UART_II_RECV_RDY里只接收到了前面7个字节,中间7字节没有接收,剩下数据在UART_II_RECV_TOUT里有接收到,就是中间的7字节数据没有接收到,想问一下是什么原因导致的?
中断中UART1_RecvByte读取fifo中字节数据后,不是会自动清除fifo对应字节数据吗,为什么读出来的数据都是重复相同的?
您好,有时间帮忙看看是哪出了问题吗?
可能是,代码收到数据之后存放在了RxBuff,但是下一次过来接收数据,RxBuff的数据又被覆盖了,所以表现出来在RDY的数据是最后一次进入的数据。
需要将RxBuff保存的数据进行移位,防止覆盖。或者直接使用例程收到数据后将数据直接发送出去,判断是否接收数据完整。
代码里面的len作为全局变量使用到的地方太多,如果不是特意这样写,建议换一个参数。
谢谢,解决了,有些变量逻辑没处理好