原来是wjc 发表于 2025-8-28 19:16

N32 串口空闲中断触发后,怎么准确计算接收的数据长度?

N32 串口 DMA 接收用空闲中断标记数据结束,中断里想算实际接收长度,按 “BufSize - DMA_GetCurrDataCounter ()” 计算,结果偶尔差 1~2 字节。
比如 BufSize 设 20,DMA 剩余计数 15,实际接收该是 5 字节,却偶尔算出 4 字节,是哪里没处理对?
要不要先清除 DMA 标志再读计数?

蓝天枫 发表于 2025-9-15 12:19


需要先依次读状态寄存器、数据寄存器,用以清除中断标识,再关闭DMA后读取。
页: [1]
查看完整版本: N32 串口空闲中断触发后,怎么准确计算接收的数据长度?