OpenEdv-开源电子网

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

关于ADC DMA通道顺序对应不上的问题

[复制链接]

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
发表于 2021-8-20 13:20:30 | 显示全部楼层 |阅读模式
3金钱
小弟最近在使用STM32G030这款芯片,配置了10路ADC(ADC0-ADC9) 通过dma传输到一个自定义数组(array[10])里,按照我的理解,应该是array[0]到array[9]按顺序存储ADC0-ADC9的采样值,现在不知道为什么array[0]存储的是ADC9的采样值,array[1]存储ADC0的值,array[2]存储ADC1的值,这样顺延下去,和我理解的出现很大的分歧,希望有知道的老哥能提点一下。
下面是cubemx配置信息:

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

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-8-20 13:44:15 | 显示全部楼层
先把DMA配置好,再配置ADC,再启动DMA,再启动ADC
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-20 15:07:58 | 显示全部楼层
聚东风 发表于 2021-8-20 13:44
先把DMA配置好,再配置ADC,再启动DMA,再启动ADC

现在发现如果不进行adc校准 就不会出现这样的状况 不知道原因是啥  
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-8-21 09:15:15 | 显示全部楼层
dadagu 发表于 2021-8-20 15:07
现在发现如果不进行adc校准 就不会出现这样的状况 不知道原因是啥

那就证明这个校准也会产生DMA请求啊,情理之中.所以你校准要在ADC初始化环节完成掉啊
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-24 15:43:53 | 显示全部楼层
聚东风 发表于 2021-8-21 09:15
那就证明这个校准也会产生DMA请求啊,情理之中.所以你校准要在ADC初始化环节完成掉啊

是的 我考虑到这种原因 但实践测试结果是  即使我将校准放到dma的初始化之前 ad检测的结果依然是数据和通道错开一位。但只要不进行校准,这种情况就会消失。
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-8-25 13:03:20 | 显示全部楼层
dadagu 发表于 2021-8-24 15:43
是的 我考虑到这种原因 但实践测试结果是  即使我将校准放到dma的初始化之前 ad检测的结果依然是数据和通 ...

呃,你会不会在开启DMA前先把所有标志位清理下吗?
回复

使用道具 举报

13

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2019-3-24
在线时间
40 小时
 楼主| 发表于 2021-8-26 15:03:43 | 显示全部楼层
聚东风 发表于 2021-8-25 13:03
呃,你会不会在开启DMA前先把所有标志位清理下吗?

用的LL库,这个操作还不会~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-30 13:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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