stm32cubmx实现不定长收发数据
使用HAL库中的IDEL和DMA方式实现uart串口接收不定长数据,并在主函数的while中将接收的数据发送到上位机,发现在while中添加HAL_Delay()函数延时后,延时时间越长,串口接收会出现字节丢失甚至串口不工作,有哪路大神知道是什么原因吗。UART串口通信硬件上属于“实时”通信,数据来了就要即时处理,至少要放到软件缓存里面。
不知你为什么要在while里面加入延时等待。不合理。 radio2radio 发表于 2018-8-14 10:32
UART串口通信硬件上属于“实时”通信,数据来了就要即时处理,至少要放到软件缓存里面。
不知你为什么要在w ...
我想的是在主函数中还要处理其他模块函数就用了延时来代替
通常是因为你没有及时把DMA缓存中的东西处理掉造成的。
其实已经读进来了,只是你没有处理,然后重新读入的数据覆盖掉了上一次读入的内容吧。 追梦人ll 发表于 2018-8-14 10:51
我想的是在主函数中还要处理其他模块函数就用了延时来代替
明白了,多谢:) 在串口接收中并不需要添加延时函数
页:
[1]