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;
}
求大神指点啊,我用我的代码去采集0 V、1.5 v、2v 、3.3v等外部电压都是正常的,配置应该没啥问题吧。 不接外部电压那 ADC 输入是否处于浮空的状态?这时候会采集到值应该是很正常的吧!这个数据是没有意义的。 ADC输入不能悬空,就像MOS工艺门电路、或运放输入不能悬空一样。
一般ADC直接测试板外信号时,都要接个对地电阻1M到10M之间,视ADC内阻和被测信号内阻而定,原则是不能影响测量结果。 浮空采集到的是噪音随机值 感谢大家,已经参考大家的意见,加实际实验,解决了,加了个51k的电阻解决了
页:
[1]