STM32
直播中

高桂清

7年用户 1033经验值
私信 关注
[问答]

STM32F407在HAL库下使用SPI通过DMA发送数据时,如何获取DMA发送计数?

●关于STM32F407在HAL库下使用SPI通过DMA发送数据如何获取DMA发送计数,变量名DMA_SxNDTR 计数器在HAL库工程里查不到。
●具体情况是我想使用SPI通过DMA发送数据,希望能获取和监控DMA剩余待发送数据的数量,主要是想在DMA发送最后一个数据的时候进行一些IO控制操作。例如发送0xF1,在发送完1111 000前面7位后,发送1位时我能通过计数器知道目前是DMA发送的最后一位。
●我在数据手册里查到原文写:”
● DMA_SxNDTR 计数器在数据存储结束后递减,该计数器中包含仍需执行的事务数。“
●但是我使用的HAL库里查不到这个DMA_SxNDTR 变量。期待有大神告诉下我DMA_SxNDTR 在HAL库里对应的变量名,或者能教教我怎么实现监控和获取DMA发送数据计数



回帖(1)

童霏

2024-3-26 14:26:21
找这个可能有点小困难,你可以这样操作:

读DMA1通道1的实时CNDTR值, DMA1_Channel1->CNDTR;


读DMA1通道2的实时CNDTR值,DMA1_Channel2->CNDTR;


这样操作也是没问题的。

当然,你也可以基于你所定义DMA结构体查找相应成员。
两种写法随你用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分