我在用多路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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不要用ADC1_SCHMITTTRIG_ALL 。
要用ADC1_SCHMITTTRIG_CHANNEL3|ADC1_SCHMITTTRIG_CHANNEL4。
不然别的AIN管脚不能用作普通IO了。
我已经被害死。:L
希望大家不要范和我一样的错误。
一周热门 更多>