查看: 2768|回复: 1

串口DMA如何计算接收数据的长度

[复制链接]

6

主题

25

帖子

210

积分

高级工程师

Rank: 3Rank: 3

积分
210
发表于 2022-8-26 16:21:59 | 显示全部楼层 |阅读模式
如题,串口DMA通过超时中断接收数据,如何计算出接受数据的长度呢?看到CHxCR寄存器里有个TSIZE位,代码里尝试读了下,貌似这一位的读数和DMA配置有关,并不是接收到的数据长度

DMA_ConfigStruct.transmissionCount = sizeof(sDmaRxTxBuf.dmaReceBuf) - 1;  //这里配置的为512-1


cnt = FL_DMA_ReadTransmissionSize(DMA,FL_DMA_CHANNEL_1);
这里cnt读出来是511,printf出来是0,
回复

使用道具 举报

154

主题

846

帖子

4624

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4624
发表于 2022-8-29 08:47:06 | 显示全部楼层
用dma的 DMA_CHxMAD寄存器,运行值 - 设的初值,就是收到的字节数了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表