OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2859|回复: 5

请问关于 ADC+DMA+TIM 的一个比较模糊的问题

[复制链接]

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-10-21
在线时间
11 小时
发表于 2020-2-15 18:10:18 | 显示全部楼层 |阅读模式
1金钱
请问大侠们,采用 ADC+DMA+TIM 的方式进行采样(DMA为循环模式,采样速率为ADC_SAMPLETIME_1CYCLE_5),如果使用回调函数HAL_ADC_ConvCpltCallback来获取转换结果,加入触发的定时器频率为1KHz即周期为1ms, 请问如下问题:
1: HAL_ADC_ConvCpltCallback 是每1ms被调用一次么?
2:DMA的中断 DMA1_Stream0_IRQHandler 也是每1ms发生一次么?
3:每1ms ADC只进行了一次转换还是很多次(因为ADC转换速度很快)?

谢谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2013-12-31
在线时间
64 小时
发表于 2020-2-16 22:45:48 | 显示全部楼层
tim是1ms一触发adc转换,dma是缓存满了中断
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-10-21
在线时间
11 小时
 楼主| 发表于 2020-2-18 09:45:55 | 显示全部楼层
qhq8001 发表于 2020-2-16 22:45
tim是1ms一触发adc转换,dma是缓存满了中断

非常感谢!就是说假如我需要计算10次采样的平均值,那就应该在DMA中断里计算。ADC的中断不需要使用,因为DMA存满前ADC已经完成了10轮采样了。
另外请教,如果这样,那么每1ms ADC采样一次,那么要10ms才会触发一次DMA中断,是这样么?谢谢!
回复

使用道具 举报

0

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2013-12-31
在线时间
64 小时
发表于 2020-2-18 18:38:27 | 显示全部楼层
georgepcb 发表于 2020-2-18 09:45
非常感谢!就是说假如我需要计算10次采样的平均值,那就应该在DMA中断里计算。ADC的中断不需要使用,因为 ...

是这样的
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-10-21
在线时间
11 小时
 楼主| 发表于 2020-2-18 20:06:42 | 显示全部楼层

请教,我发现似乎没有DMA中断的回调函数,在其它地方看到有人说DMA的中断回调函数绕来绕去又绕回了HAL_ADC_ConvCpltCallback,请问是否是这样?如果是,就可以在HAL_ADC_ConvCpltCallback里面计算平均值了。谢谢
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-10-21
在线时间
11 小时
 楼主| 发表于 2020-2-18 21:33:14 | 显示全部楼层

问多一句:我没找到DMA对应的回调函数,是否在ADC+DMA的情况下,DMA存满后也是使用HAL_ADC_ConvCpltCallback?感谢!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-8 06:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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