STM8多路AD采样问题

2019-07-19 20:08发布

我在用多路ADC采样时出现一个问题 假如我初始化设置的通道为AIN4  采样的时候先采AIN3采样再AIN4采样 但采样出来的结果是反过来的 AIN3的采样值变为AIN4的采样值 AIN3的采样值是AIN3的采样值  假如我初始化的通道为AIN5 采样的时候先采AIN3采样再AIN5采样,采样出来的结果是AIN3的采样值是AIN4的采样值 AIN3的采样值为AIN3的采样值,高手求救 原子哥求救
void ADC_Init(void)
{
   ADC1_DeInit();
   
   ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_4, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_ALL, DISABLE); //单次转换 通道4 2分频 内部定时器1的TRG事件关 右对齐 

   ADC1_ITConfig(ADC1_IT_AWDIE, DISABLE);  看门狗中断关闭
   ADC1_ITConfig(ADC1_IT_EOCIE, DISABLE);
/*
  ADC1_Cmd(ENABLE);
*/
}
void main()
{
        ADC_Init();
        ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_3, ADC1_ALIGN_RIGHT);     //AIN3
        ADC1_StartConversion();
      Conversion_Value = ADC1_GetConversionValue(); 
      AD_Value[0]=Conversion_Value;
        ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_4, ADC1_ALIGN_RIGHT);     //AIN4
        ADC1_StartConversion();
      Conversion_Value = ADC1_GetConversionValue(); 
      AD_Value[1]=Conversion_Value;

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
catbal
1楼-- · 2019-07-20 01:31
 精彩回答 2  元偷偷看……
回复地方
2楼-- · 2019-07-20 03:13
mark 多路AD转换
fanghuiopenedv
3楼-- · 2019-07-20 06:44
在ADC1_Init中,
不要用ADC1_SCHMITTTRIG_ALL 。
要用ADC1_SCHMITTTRIG_CHANNEL3|ADC1_SCHMITTTRIG_CHANNEL4。
不然别的AIN管脚不能用作普通IO了。
我已经被害死。:L
希望大家不要范和我一样的错误。
加速度
4楼-- · 2019-07-20 06:54
 精彩回答 2  元偷偷看……
hthometown
5楼-- · 2019-07-20 07:08
 精彩回答 2  元偷偷看……
大哥大雷神
6楼-- · 2019-07-20 12:58
我之前也遇到过类似问题

一周热门 更多>