在啟用串口DMA接收的協(xié)議幀的時(shí)候發(fā)現(xiàn)接收粘包或者接收不全現(xiàn)象。發(fā)送端100ms發(fā)送幀頭0D幀尾0A的30字節(jié)數(shù)據(jù),接收端使用串口空閑中斷DMA方式收數(shù)據(jù):1、接收端可能會(huì)收到0A 0D 開(kāi)頭的30字節(jié)數(shù)據(jù),也就是上一幀的幀尾粘連到當(dāng)前幀變成了幀頭;2、接收端會(huì)收到上一幀更多粘連的當(dāng)前幀;3、收30字節(jié)時(shí)會(huì)出現(xiàn)兩次串口空閑中斷,也就是第一次16字節(jié)第二次14字節(jié)(出現(xiàn)較少),在空閑中斷服務(wù)函數(shù)中加上20msdelay粘包現(xiàn)象會(huì)有改善。
不知道是不是CH32F103的DMA有bug,望釋疑。