在启用串口DMA接收的协议帧的时候发现接收粘包或者接收不全现象。发送端100ms发送帧头0D帧尾0A的30字节数据,接收端使用串口空闲中断DMA方式收数据:1、接收端可能会收到0A 0D 开头的30字节数据,也就是上一帧的帧尾粘连到当前帧变成了帧头;2、接收端会收到上一帧更多粘连的当前帧;3、收30字节时会出现两次串口空闲中断,也就是第一次16字节第二次14字节(出现较少),在空闲中断服务函数中加上20msdelay粘包现象会有改善。
不知道是不是CH32F103的DMA有bug,望释疑。
热门产品 :
CH339: 7端口多功能USB HUB控制器芯片