stm8s103的ADC转换程序 怎么跑不起来呀
void ADC_Init(void){
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_0,
ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE,
ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE);
}
void ADConvert(void)
{
unsigned char count=0;
ADC1->CR1|=0x02;
ADC1_StartConversion();
while(count<10)
{
while(ADC1_GetConversionValue()==RESET);
ADC1_ClearFlag(ADC1_FLAG_AWS2);
ADCValue=ADC1_GetConversionValue();
count++;
}
ADC1->CR1&=~0x02;
}
void Digutal(void)
{
unsigned char i,j;
unsigned int temp;
for(i=10;i>=1;i--)
{
for(j=0;j<=(i-1);j++)
{
if(ADCValue>ADCValue)
{
temp=ADCValue;
ADCValue=ADCValue;
ADCValue=temp;
}
}
}
voltageADC=0;
for(i=2;i<=7;i++)
voltageADC+=ADCValue;
voltageADC/=6;
voltage=(unsigned int)((unsigned long)voltageADC*3240UL/1023UL);
}
出现什么状态? 现在能读出数来,但是比较乱是不是没有参考电压的问题,stm8s103数据手册上没有关于参考电压的解释 key 发表于 2015-1-31 09:56
现在能读出数来,但是比较乱是不是没有参考电压的问题,stm8s103数据手册上没有关于参考电压的解释
肯定需要参考电压,你看管脚的定义,是不是电源就直接给的参考电压 admin 发表于 2015-1-31 15:06
肯定需要参考电压,你看管脚的定义,是不是电源就直接给的参考电压
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_2, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_LEFT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE);
已解决 AD部分没问题 在显示上出现问题了。
页:
[1]