打印

请教STM32的定时器DMA问题

[复制链接]
7895|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhabin|  楼主 | 2009-5-9 23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 定时器的DMA是否不能和中断同时用? 比如设置TIM3的CC1作DMA传送,则CC1就无法产生中断.
2. STM32中有DMA专用的寄存器TIMx_DMAR, 通过它读取与通过直接读取各寄存器有何不同?
3. DMA中的DMA_CNDTRx中的数字到底是传送的字节数还是DMA次数?
4. 捕获口不够,想用外部信号触发DMA读取TIMx_CNT来代替捕获功能,有没有什么缺陷?
沙发
香水城| | 2009-5-10 09:51 | 只看该作者

一些STM32的定时器DMA问题

1)我没有注意过这个用法,但应该没有冲突,可以同时产生DMA和中断请求。
2)使用DMA的目的就是减少CPU的干预,通过DMA读取定时器的寄存器与直接读取得不同也在这里。
3)DMA次数。
4)这种方法的不足是补获时机不如捕获功能准确,需要考虑DMA响应的时间,如果选择的DMA通道优先级较低,还有可能有更长的延迟。

使用特权

评论回复
板凳
zhabin|  楼主 | 2009-5-10 19:19 | 只看该作者

再请教一下定时器DMA问题

1)这种情况下我发现不能可靠产生中断,但资料上没有提到,所以在这里问一下.
2)可能有误解, 我的意思是用DMA访问TIMx_DMAR和TIMx_CCR1有什么不同? 这里TIMx_DMAR也通过TIMx_DSC配置成访问TIMx_CCR1. 

使用特权

评论回复
地板
香水城| | 2009-5-16 22:46 | 只看该作者

“不能可靠产生中断”的确切含义是什么?

我的理解是有时没有产生中断,如果我的理解正确的话,那么请问你预定的中断频率是多少?时有时无的情况是否有规律?或具体举个例子,这种情况下DMA是否正常?

问题2),如果用DMA访问TIMx_DMAR寄存器,当然与用DMA访问其它寄存器没有分别。

使用特权

评论回复
5
brotherwen| | 2009-5-25 08:56 | 只看该作者

回2楼

第三问答案是DMA字节数,而非次数!

使用特权

评论回复
6
香水城| | 2009-5-25 10:36 | 只看该作者

DMA中的DMA_CNDTRx中的数字代表DMA传输次数,而不是传输字节数

设置DMA传输的一个重要参数是DMA传输数据宽度,数据宽度可以是8位(1字节)、16位(2个字节)或32位(4个字节)。

DMA中的DMA_CNDTRx中的数字代表DMA传输次数,按照DMA传输数据宽度的设置,一次DMA传输次数可以传输1个字节、2个字节或4个字节,所以DMA_CNDTRx中的数字不等同于DMA传输字节数。

使用特权

评论回复
7
brotherwen| | 2009-5-26 09:40 | 只看该作者

呵呵

使用特权

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

本版积分规则

6

主题

21

帖子

0

粉丝