STM32L476RC ADC-DMA 输出值后半部分都是0,不知道为什么?
在做ADC-DMA转电压值时,输出值存储在uhADCxConvertedValue中,长度为256,但是打印出来的值每个通道的前128个有数值,但是后128个数据都为0,很奇怪,不知道为什么?#define NB256 //每个通道长度为256
#define CHN2//两个通道
#define ADCNB NB*CHN
u16 uhADCxConvertedValue;
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&uhADCxConvertedValue, ADCNB);
for(int a=0;a<NB;a++){
printf("uhADCxConvertedValue[%d]= %d\r\n",a,uhADCxConvertedValue);//通道1的数据
printf("uhADCxConvertedValue[%d]= %d\r\n",a,uhADCxConvertedValue); //通道2的数据
}
不知道你在什么时候读取数据的,不知道跟DMA进两次中断有没有关系。 是不是配置哟问题? 注意数据宽度问题。 toofree 发表于 2018-3-21 22:22
不知道你在什么时候读取数据的,不知道跟DMA进两次中断有没有关系。
“从程序看,DMA会进两次中断,第一次是一半传输完,第二次是全部传输完”这句话怎么理解,怎么看出会两次中断还要读两次才完整? u16 uhADCxConvertedValue;这个改成 u32 uhADCxConvertedValue; 就可以了 ccmm520 发表于 2018-3-22 10:16
“从程序看,DMA会进两次中断,第一次是一半传输完,第二次是全部传输完”这句话怎么理解,怎么看出会两 ...
toofree 发表于 2018-3-22 11:17
哦,大概清楚了,谢谢
页:
[1]