打印
[应用相关]

STM32F446移植到AT32F4,DMA代码移植的问题

[复制链接]
5014|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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不同 ...

收到,非常感谢您的解答!

使用特权

评论回复
5
skyred| | 2021-11-2 16:04 | 只看该作者
学习了··DMA是个好东西

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

34

帖子

0

粉丝