ADC单次采样模式问题

2019-08-12 17:24发布

我有一个疑问,为什么在单次采样模式下,我调用一次adcx=Get_Adc(ADC_Channel_1); 从串口打印数据为什么会有三个采样值?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
当儿ing
2019-08-14 02:11
回复【8楼】正点原子:
---------------------------------
按照原子哥说的,就算不能运行到底,按理论来说,调用一次while循环也应该只输出1个数啊 ,当我把程序如下修改
不取平均值,直接取ADC每次转换的值,那我是调用了Get_Adc()150次啊,为什么printf()输出到串口150*3=450个值呢?
还有就是,为什么要是个死循环啊?要是想要ADC转换的150个数只能用DMA了吗?刚接触STM,只能从例程开始,比较困惑,望原子哥解答~感激不尽~
i=0;
while(i<150) 

  i=i+1
  adcx=Get_Adc(ADC_Channel_1);//直接取ADC每次转换的值
  LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值 
  temp=(float)adcx*(3.3/4096); 
  printf("%f "); 
  adcx=temp; 
  LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值 
  temp-=adcx; 
  temp*=1000; 
  LCD_ShowxNum(172,150,temp,3,16,0X80); 
  LED0=!LED0; 
  delay_ms(250);

 }

一周热门 更多>