N32 串口空闲中断触发后,怎么准确计算接收的数据长度?
N32 串口 DMA 接收用空闲中断标记数据结束,中断里想算实际接收长度,按 “BufSize - DMA_GetCurrDataCounter ()” 计算,结果偶尔差 1~2 字节。比如 BufSize 设 20,DMA 剩余计数 15,实际接收该是 5 字节,却偶尔算出 4 字节,是哪里没处理对?
要不要先清除 DMA 标志再读计数?
需要先依次读状态寄存器、数据寄存器,用以清除中断标识,再关闭DMA后读取。
页:
[1]