STM32
直播中

楼斌

8年用户 893经验值
私信 关注
[问答]

stm32F407ZGT6的DMA开启之后只能读一次值是为什么?

STM32F407ZGT6的DMA开启之后只能读一次值是为啥

回帖(2)

朱寅竹

2024-4-3 14:30:39
应该是是你设置的DMA 模式为 DMA_Mode_Normal   启动后一次有效,下次再手动启动
另外一种模式是 DMA_Mode_Circular
举报

胖子的逆袭

2024-4-3 15:59:49
有多种可能导致DMA只能读取一次值。以下是一些常见原因:

1. DMA传输完成标志未被正确清除:在启用DMA之后,需要等待DMA传输完成,并手动清除相应的传输完成标志位。如果未正确清除传输完成标志,则无法再次触发DMA传输。

2. DMA传输长度设置错误:DMA传输长度需要正确设置,以确保DMA可以传输所需的数据量。如果传输长度设置错误,则只能读取一次数据。

3. DMA通道配置错误:DMA通道需要正确配置才能正常工作。如果通道配置有误,可能会导致DMA无法连续传输数据。

4. DMA传输模式设置错误:DMA有不同的传输模式,包括循环模式、单次传输模式等。如果传输模式设置有误,可能会导致DMA只能进行一次传输。

5. 数据源或目标地址设置错误:DMA需要配置正确的数据源和目标地址,以确保可以正确传输数据。如果地址设置有误,可能会导致DMA无法连续读取数据。

需要仔细检查以上可能的原因,确保DMA配置正确,并通过适当的操作清除标志位,才能实现连续的DMA数据传输。
举报

更多回帖

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