OpenEdv-开源电子网

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

ADC使用DMA通道测电压电流,电压一直为0,电流为负数,请大家帮忙解决一下 。

[复制链接]

9

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2021-6-21
在线时间
47 小时
发表于 2021-10-22 16:07:06 | 显示全部楼层 |阅读模式
2金钱
已上传完整的程序,请大家指出问题

DMA_2_ADC.zip

306.04 KB, 下载次数: 11

最佳答案

查看完整内容[请看2#楼]

有必要用中断吗?用来干嘛呢? 若觉得有必要,即然用了DMA,那就用DMA中断吧,我不了解DMA循环模式下它的中断是否好用。用ADC的中断应该也行的。 如果你是想采集一个点的数据就处理一下,那就不要用DMA,直接用ADC中断。(扫描多通道还是要用DMA,但最好不要用循环模式) 如果你是想大批量采集数据后集中处理一下,那就用DMA,但不要用循环模式,使用“传输完成中断”。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3402

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8687
金钱
8687
注册时间
2020-5-11
在线时间
4170 小时
发表于 2021-10-22 16:07:07 | 显示全部楼层
本帖最后由 LcwSwust 于 2021-10-22 16:38 编辑
allen98 发表于 2021-10-22 16:19
您好,确实挺感谢你的回复。有一点我还挺疑问的,DMA通道的话,写中断是写ADC的中断还是DMA得中断那。如 ...

有必要用中断吗?用来干嘛呢?
若觉得有必要,即然用了DMA,那就用DMA中断吧,我不了解DMA循环模式下它的中断是否好用。用ADC的中断应该也行的。
如果你是想采集一个点的数据就处理一下,那就不要用DMA,直接用ADC中断。(扫描多通道还是要用DMA,但最好不要用循环模式)
如果你是想大批量采集数据后集中处理一下,那就用DMA,但不要用循环模式,使用“传输完成中断”。
专治疑难杂症
回复

使用道具 举报

12

主题

3402

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8687
金钱
8687
注册时间
2020-5-11
在线时间
4170 小时
发表于 2021-10-22 16:13:14 | 显示全部楼层
为什么先调用    adc1_start(); 后调用    ADC1_Init(); ?
傲游截图20211022161257.jpg
专治疑难杂症
回复

使用道具 举报

9

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2021-6-21
在线时间
47 小时
 楼主| 发表于 2021-10-22 16:17:05 | 显示全部楼层
LcwSwust 发表于 2021-10-22 16:13
为什么先调用    adc1_start(); 后调用    ADC1_Init(); ?

刚刚看这个问题,看的太迷糊了。。改了之后好了,不过现在只有PB0可以输出,但是我要是想得到PB1读AD的数值,应该怎么写那
回复

使用道具 举报

9

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2021-6-21
在线时间
47 小时
 楼主| 发表于 2021-10-22 16:19:26 | 显示全部楼层
LcwSwust 发表于 2021-10-22 16:13
为什么先调用    adc1_start(); 后调用    ADC1_Init(); ?

您好,确实挺感谢你的回复。有一点我还挺疑问的,DMA通道的话,写中断是写ADC的中断还是DMA得中断那。如果是写DMA的中断,您是否可以提点中断中应该处理什么数据那
回复

使用道具 举报

9

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2021-6-21
在线时间
47 小时
 楼主| 发表于 2021-10-22 16:59:41 | 显示全部楼层
LcwSwust 发表于 2021-10-22 16:33
有必要用中断吗?用来干嘛呢?
若觉得有必要,即然用了DMA,那就用DMA中断吧,我不了解DMA循环模式下它 ...

我一边想运行我的电机,然后测一下电路的电压。有三个通道的电压,所以我就在考虑使用ADC单独的中断,还是用DMA的中断更好一点呢?因为我刚用到DMA,还不太会用。
另一点,我用了DMA的双通道,他的通道之间是不是会互相干扰
回复

使用道具 举报

12

主题

3402

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8687
金钱
8687
注册时间
2020-5-11
在线时间
4170 小时
发表于 2021-10-22 17:08:15 | 显示全部楼层
allen98 发表于 2021-10-22 16:59
我一边想运行我的电机,然后测一下电路的电压。有三个通道的电压,所以我就在考虑使用ADC单独的中断,还 ...

到底哪个好,得试一下才知道,DMA通道间没听说有干扰的。
专治疑难杂症
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 16:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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