打印
[APM32E0]

DMA的NDATAT传输数值怎么理解?

[复制链接]
51|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
水之呢喃|  楼主 | 2025-7-30 20:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DMA的NDATAT传输数值怎么理解?
DMA的配置过程中需要PERSIZE和MSIZE,我在串口通讯时使用8bit类型,在SPI传输时使用32bit类型。然后应该配置一下NDATAT寄存器,设置传输的个数。
这里,我有一个问题,这个NDATAT寄存器的个数是字节数,还是传输的次数,即传输的字节数为 NDATAT x PERSIZE的结果?

使用特权

评论回复
沙发
DKENNY| | 2025-7-31 09:25 | 只看该作者
NDATA(APM32的 DMA_NDATA 寄存器)是传输次数,表示DMA要传输多少个“数据单元”。

- 每个“数据单元”的大小由 PERSIZE(外设数据宽度)决定:
  - 串口:PERSIZE = 8位(1字节),NDT = 100,传输100次 = 100字节。
  - SPI:PERSIZE = 32位(4字节),NDT = 100,传输100次 = 100 × 4 = 400字节。

可以说,NDATA不是字节数,是传输次数。字节数 = NDT × PERSIZE的字节数。

使用特权

评论回复
板凳
梦塑者| | 2025-7-31 14:39 | 只看该作者
DKENNY 发表于 2025-7-31 09:25
NDATA(APM32的 DMA_NDATA 寄存器)是传输次数,表示DMA要传输多少个“数据单元”。

- 每个“数据单元”的 ...

我也是这么理解的。
从设计的角度上讲,我只是发送次数,至于位宽是多少,要看你自己设置的MSIZE来定了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

粉丝