打印
[技术问答]

关于HC32F460 DMA 的疑问

[复制链接]
707|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ch_liuping|  楼主 | 2022-12-9 14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据 勘误表
■ 问题描述
DMA 通道传输完成后,硬件会使通道使能寄存器(DMA_CHEN)相应位自动清零。可能会和软件写使
能 DMA_CHEN 产生冲突。
■ 变通措施
避免在 DMA_CHEN 的某位或某几位自动清零时,对该寄存器内执行 RMW 操作

按照这个逻辑,DMA就是个**肋了啊,
现在需要使用多个通道,有没有可以绕开的办法?

使用特权

评论回复
沙发
QQ3461816790| | 2022-12-9 14:51 | 只看该作者
用例程跑跑看

使用特权

评论回复
板凳
ch_liuping|  楼主 | 2022-12-9 16:23 | 只看该作者
本帖最后由 ch_liuping 于 2022-12-9 16:24 编辑

看了驱动库中的 DMA_ChCmd 函数的实现,在其它通道在使用中的情况下,如果待传输的数量大于10,则不等待,如果待传输的数量小于10,要等待通道传输完成。

如果理解没错,那最坏的情况是需要等待30个数据传输的时间,那每个数据传输的时间是不同外设来确定的,

哎!

使用特权

评论回复
地板
tpgf| | 2023-1-1 13:46 | 只看该作者
这种清零以及软件冲突可以通过一定的数据处理滞后进行妥协吗

使用特权

评论回复
5
qcliu| | 2023-1-1 14:16 | 只看该作者
这个等待传输的数量 是指的数据包的数量还是值数据的数量啊

使用特权

评论回复
6
drer| | 2023-1-1 14:29 | 只看该作者
30个数据的传输时间是多少呢 跟波特率有关系吗

使用特权

评论回复
7
coshi| | 2023-1-1 14:36 | 只看该作者
如何避免在 DMA_CHEN 的某位或某几位自动清零时,对该寄存器内执行 RMW 操作呢

使用特权

评论回复
8
kxsi| | 2023-1-1 14:47 | 只看该作者
这个默认的等待时间可以通过配置进行更改吗

使用特权

评论回复
9
wiba| | 2023-1-1 15:04 | 只看该作者
任何模式下的数据传输在数据包之间都需要等待一定的时间

使用特权

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

本版积分规则

3

主题

8

帖子

1

粉丝