DMA的NDATAT传输数值怎么理解?
DMA的NDATAT传输数值怎么理解?DMA的配置过程中需要PERSIZE和MSIZE,我在串口通讯时使用8bit类型,在SPI传输时使用32bit类型。然后应该配置一下NDATAT寄存器,设置传输的个数。这里,我有一个问题,这个NDATAT寄存器的个数是字节数,还是传输的次数,即传输的字节数为 NDATAT x PERSIZE的结果?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的字节数。 DKENNY 发表于 2025-7-31 09:25
NDATA(APM32的 DMA_NDATA 寄存器)是传输次数,表示DMA要传输多少个“数据单元”。
- 每个“数据单元”的 ...
我也是这么理解的。
从设计的角度上讲,我只是发送次数,至于位宽是多少,要看你自己设置的MSIZE来定了
页:
[1]