wanyisq 发表于 2018-10-16 20:09:21

STM32串口接收第一个字节的问题

请问一下用HAL库做串口接收,单步仿真,第一个字节可以接收到。全速运行第一个字节就没有了。但是把接受的数据再发出来,发现第一个字节到了最后一个字节。

第一次接受的数据是23,正常
第二次接受多个字节 23 24 25 26 ,但是接收到的数据已经变成了 24 25 26 23

chifen 发表于 2018-10-16 20:24:17

先单独接收所有数据,不要回复,收和发是共用一个函数据的,看看能不能收全,再发送

wenyangzeng 发表于 2018-10-16 21:14:05

应该判断标志位的:

while (HAL_UART_GetState(&UartHandle) != HAL_UART_STATE_READY)
{
}

wudianjun2001 发表于 2018-10-17 09:13:20

接收中断的话,应该不会有这个问题,缓冲没处理好?

xiaoshen-372360 发表于 2018-10-18 09:05:45

全速运行的时候中间设置时间间隔,设置大概1秒的时间间隔,然后再开始接受,使用串口调试工具检测,看看是不是下一次的第一个字节到了前一个字节了,

jeffhe1 发表于 2018-10-18 09:35:30

可能需要做 狀態判斷 , 在做下一步動作 , 不然buffer的值 , 有可能就被取代 , 再加上有 ring buffer 的話 ,而 buffer 不夠大, data 就會一直覆蓋

czm 发表于 2020-3-28 16:22:17

你好,请问你这个问题当时解决了吗?我也遇到了这个问题,请赐教下
页: [1]
查看完整版本: STM32串口接收第一个字节的问题