[应用相关] STM32F446移植到AT32F4,DMA代码移植的问题

[复制链接]
 楼主| Redbeannnnnn 发表于 2021-10-15 15:35 | 显示全部楼层 |阅读模式
最近在将基于STM32F446的代码移植到AT32F403A上时,DMA部分代码的移植过程中有一部分代码不知道该如何处理:STM32代码中有一句:while (DMA_GetCmdStatus(DMA1_Stream2) != DISABLE); {}该代码作用是等待对应的DMA通道关闭,当DMA通道成功关闭以后,跳出循环执行后面的代码。现在的问题是:我在AT32F4上没有找到对应功能的函数,并且,我也找了AT32F4的DMA寄存器部分,没有可以实现这一功能的寄存器,所以不知道这句代码该如何修改,麻烦有移植过这部分代码的老铁们指点一二,感激不尽!
 楼主| Redbeannnnnn 发表于 2021-10-18 11:09 | 显示全部楼层
求教求教~
tanleitanlei 发表于 2021-10-18 17:46 | 显示全部楼层
sxx这一句代码的主要意图是等待DMA通道传输完成,也就是DMA的CNT寄存器变为0。由于403A的DMA架构与446不同,可以使用判断"传输完成标志置1"代替。需要注意的是DMA传输完成后,如果想要再开启DMA传输,403A需要软件清除通道使能位,再写入传输size值,然后开启DMA通道即可。
 楼主| Redbeannnnnn 发表于 2021-10-19 14:30 | 显示全部楼层
tanleitanlei 发表于 2021-10-18 17:46
sxx这一句代码的主要意图是等待DMA通道传输完成,也就是DMA的CNT寄存器变为0。由于403A的DMA架构与446不同 ...

收到,非常感谢您的解答!
skyred 发表于 2021-11-2 16:04 | 显示全部楼层
学习了··DMA是个好东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

34

帖子

0

粉丝
快速回复 返回顶部 返回列表