最近在做一个项目,使用stm32F407,在使用串口DMA接收数据的时候出现少接受一位的情况每次串口接收一帧数据,一帧数据有6个字节,正常情况下
第一次接收的数据为 : 0 1 2 3 4 5
第二次接收的数据为: 6 7 8 9 A B
但是有时候会出现
第一次接收的数据为 : 0 1 2 3 4 X //X表示没有接收到数据,程序等待一段时间后等待超时就跳出,
第二次接收的数据为: 5 6 7 8 9 A //第二次接收数据会把本来上一次应该接到到的5接收到了,但是会把本应该接收到的B字节挤到下一轮接受数据中
本来每次接收完,无论对错我都会把stm32内部的标志位清除掉,应该不会在下一轮的数据接收时还能接收到上一次的数据,导致数据每次接收都出现有一位数据要到下一轮数据接收的时候才能收到
不知道论坛里各位有没有遇到相同问题的哥们
|