你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L476RC ADC-DMA 输出值后半部分都是0,不知道为什么?

[复制链接]
ccmm520 提问时间:2018-3-21 19:22 /
在做ADC-DMA转电压值时,输出值存储在uhADCxConvertedValue中,长度为256,但是打印出来的值每个通道的前128个有数值,但是后128个数据都为0,很奇怪,不知道为什么?

#define NB  256 //每个通道长度为256
#define CHN  2  //两个通道
#define ADCNB NB*CHN

u16 uhADCxConvertedValue[NB][CHN];

HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&uhADCxConvertedValue, ADCNB);

for(int a=0;a<NB;a++){
  printf("uhADCxConvertedValue[%d][0]= %d\r\n",a,uhADCxConvertedValue[a][0]);  //通道1的数据
  printf("uhADCxConvertedValue[%d][1]= %d\r\n",a,uhADCxConvertedValue[a][1]); //通道2的数据
}

收藏 评论6 发布时间:2018-3-21 19:22

举报

6个回答
toofree 回答时间:2018-3-21 22:22:41
不知道你在什么时候读取数据的,不知道跟DMA进两次中断有没有关系。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xmshao 回答时间:2018-3-21 23:07:20
是不是配置哟问题? 注意数据宽度问题。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

ccmm520 回答时间:2018-3-22 10:16:32
toofree 发表于 2018-3-21 22:22
不知道你在什么时候读取数据的,不知道跟DMA进两次中断有没有关系。

“从程序看,DMA会进两次中断,第一次是一半传输完,第二次是全部传输完”这句话怎么理解,怎么看出会两次中断还要读两次才完整?
dsjsjf 回答时间:2018-3-22 10:51:04
u16 uhADCxConvertedValue[NB][CHN];  这个改成 u32 uhADCxConvertedValue[NB][CHN]; 就可以了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

toofree 回答时间:2018-3-22 11:17:32
ccmm520 发表于 2018-3-22 10:16
“从程序看,DMA会进两次中断,第一次是一半传输完,第二次是全部传输完”这句话怎么理解,怎么看出会两 ...

傲游截图20180322111656.png
ccmm520 回答时间:2018-3-22 14:41:24

哦,大概清楚了,谢谢

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版