[技术问答] 关于HC32F460 DMA 的疑问

[复制链接]
1322|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 | 显示全部楼层
这种清零以及软件冲突可以通过一定的数据处理滞后进行妥协吗
qcliu 发表于 2023-1-1 14:16 | 显示全部楼层
这个等待传输的数量 是指的数据包的数量还是值数据的数量啊
drer 发表于 2023-1-1 14:29 | 显示全部楼层
30个数据的传输时间是多少呢 跟波特率有关系吗
coshi 发表于 2023-1-1 14:36 | 显示全部楼层
如何避免在 DMA_CHEN 的某位或某几位自动清零时,对该寄存器内执行 RMW 操作呢
kxsi 发表于 2023-1-1 14:47 | 显示全部楼层
这个默认的等待时间可以通过配置进行更改吗
wiba 发表于 2023-1-1 15:04 | 显示全部楼层
任何模式下的数据传输在数据包之间都需要等待一定的时间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部