硬汉嵌入式论坛

 找回密码
 立即注册
查看: 404|回复: 4
收起左侧

[FMC] 关于硬汉的“AD7606的FMC DMA双缓冲总线驱动方式实现”的一个没明白的问题

[复制链接]

3

主题

20

回帖

29

积分

新手上路

积分
29
发表于 2023-10-19 11:13:12 | 显示全部楼层 |阅读模式
例程中是用定时器的UP事件来触发DMA, 实现从ad7606读取数据到缓存。例程代码如下:


HAL_DMA_Start_IT(&TIMDMA, (uint32_t)AD7606_BASE, (uint32_t)g_sAd7606Buf, AD7606_BUFSIZE);


但是我在看stm32H7的参考手册的定时器章节中,发现这么一句话:

“The DMA controller destination is unique and must point to the virtual register TIMx_DMAR.”

也就是说定时器的DMA的目的地址必须是TIMx_DMAR.  我在例程代码中,发现并没有开启定时器UP事件的DMA功能(通过TIMx_DIER来设置),于是我猜想,是不是在不开定时器DMA的情况下, 定时器的这些事件,可以用作触发其它的DMA传输,就好像例程中的这种用法。

进一步延伸一下,是不是所有DMAMUX中的外设请求输入(DMAMUXperipheral request inputs), 都可以这样用。 或者说我想的完全是错的?








回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-10-19 11:52:54 | 显示全部楼层
你说的这个是DMA突发模式批量更新定时器CCR等寄存器用的。


下载 (1).png
回复

使用道具 举报

3

主题

20

回帖

29

积分

新手上路

积分
29
 楼主| 发表于 2023-10-19 13:03:13 | 显示全部楼层
eric2013 发表于 2023-10-19 11:52
你说的这个是DMA突发模式批量更新定时器CCR等寄存器用的。

也就是说,定时器事件,可以用来触发其它的DMA(非定时器模块), 是不?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2023-10-19 15:02:38 | 显示全部楼层
dongshan 发表于 2023-10-19 13:03
也就是说,定时器事件,可以用来触发其它的DMA(非定时器模块), 是不?

可以这么理解。
回复

使用道具 举报

3

主题

20

回帖

29

积分

新手上路

积分
29
 楼主| 发表于 2023-10-19 15:22:38 | 显示全部楼层

感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 20:19 , Processed in 0.290510 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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