ST意法半导体
直播中

刘秀英

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

如何在不重新启用DMA的情况下使DMA连续运行?

我的应用是每次检测到下降沿时,将Memory中的内容(32位数据)复制到PORT ODR。我使用来自 tiMER CCP 引脚的 DMA1。
我遇到的问题是,DMA1 将在完成传输后立即停止并需要再次重新启用。
上次我使用 STM32F429ZI 时,我设法让它在不重新启用的情况下连续运行。但不知何故我不能再做一次?
这是我在 STM32CubeMX 中针对 DMA1 的配置:
模式 =圆形
使用 FIFO =禁用
外设上的递增地址 =禁用
增加内存地址 =禁用
数据宽度 =(在外设和内存上)
我虽然通过将 DMA 模式设置为 Circular 然后它会连续运行????但好像不是。还是STM32CubeMX的bug?








回帖(1)

康根

2023-2-3 15:29:49
好吧,我想我找到了它停止的原因。从 SFR 调试窗口中,我发现了一个错误传输,我认为这就是它停止的原因。
顺便说一句,我可以将 DMA2 用于 USART TX,它们工作得很好。所以我认为 lib 没问题,或者至少我写的 lib 没问题。
举报

更多回帖

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