浮生若水ゝ 发表于 2019-1-16 19:56:50

STM8S003 ADC采集异常,不接外部电源能采集到值

STM8S003 ADC采集异常,不接外部电源能采集到值,这是为什么啊,我ADC配置什么的都是好的。void main(void)
{
    /* Infinite loop */
    Bsp_Sys_Init();
    while (1)
    {
      ADCV = ADC_Read();
      printf("adc= %d\r\n",ADCV) ;
      UART1_SendData8('H');
      TIMDelay_Nms(1000);
      UART1_SendData8('e');
      TIMDelay_Nms(1000);
    }
}void Bsp_ADC_Init(void)
{
    //Set ADC1 to default setting
    ADC1_DeInit();
    ADC1_Init(ADC1_CONVERSIONMODE_SINGLE,         //Single mode
            ADC1_CHANNEL_3,                     //Use channel 3- PD2
            ADC1_PRESSEL_FCPU_D2,                //Pre-12
            ADC1_EXTTRIG_TIM, DISABLE,            //Don't use external trigger
            ADC1_ALIGN_RIGHT,                     //Align to right
            ADC1_SCHMITTTRIG_CHANNEL3, DISABLE);//not use schmitter
            
    ADC1_ClearFlag(ADC1_FLAG_AWS3);
    ADC1_Cmd(ENABLE);   
}

uint16_t ADC_Read(void)
{

    uint16_t adc_value = 0;

    ADC1_StartConversion();                      //启动AD转换
    while(!ADC1_GetFlagStatus(ADC1_FLAG_EOC));
    ADC1_ClearFlag(ADC1_FLAG_EOC);               //等待转换完成,并清除标志
    adc_value = ADC1_GetConversionValue();
    ADC1_ClearFlag(ADC1_FLAG_EOC);
    return adc_value;
}

浮生若水ゝ 发表于 2019-1-16 19:57:57

求大神指点啊,我用我的代码去采集0 V、1.5 v、2v 、3.3v等外部电压都是正常的,配置应该没啥问题吧。

slotg 发表于 2019-1-17 09:51:57

不接外部电压那 ADC 输入是否处于浮空的状态?这时候会采集到值应该是很正常的吧!这个数据是没有意义的。

toofree 发表于 2019-1-17 10:22:32

ADC输入不能悬空,就像MOS工艺门电路、或运放输入不能悬空一样。
一般ADC直接测试板外信号时,都要接个对地电阻1M到10M之间,视ADC内阻和被测信号内阻而定,原则是不能影响测量结果。

Kevin201707 发表于 2019-1-17 17:29:12

浮空采集到的是噪音随机值

浮生若水ゝ 发表于 2019-1-28 14:34:39

感谢大家,已经参考大家的意见,加实际实验,解决了,加了个51k的电阻解决了
页: [1]
查看完整版本: STM8S003 ADC采集异常,不接外部电源能采集到值