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

[复制链接]
1700|1
原来是wjc 发表于 2025-8-28 19:16 | 显示全部楼层 |阅读模式
N32 串口 DMA 接收用空闲中断标记数据结束,中断里想算实际接收长度,按 “BufSize - DMA_GetCurrDataCounter ()” 计算,结果偶尔差 1~2 字节。
比如 BufSize 设 20,DMA 剩余计数 15,实际接收该是 5 字节,却偶尔算出 4 字节,是哪里没处理对?
要不要先清除 DMA 标志再读计数?

蓝天枫 发表于 2025-9-15 12:19 | 显示全部楼层

需要先依次读状态寄存器、数据寄存器,用以清除中断标识,再关闭DMA后读取。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

1250

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部