limosky 发表于 2019-10-29 16:39:05

STM8 ADC1读出了16192数值,是不是我设置错了?

刚接触学习STM8 ADC
使用ADC1,AIN4通道
stm8s的VCC 为5V,ADC测量NTC电阻电压时读数15600左右,直接将AIN4接入VCC,读出来16192左右的数值。求大侠帮忙看看。。。

void ADC1_Initializes()
{
//使用通道4,PD3
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, \
          ADC1_CHANNEL_4, \
          ADC1_PRESSEL_FCPU_D2, \
          ADC1_EXTTRIG_TIM, DISABLE, \
          ADC1_ALIGN_LEFT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE);
ADC1_Cmd(ENABLE);//启动ADC1
}
uint32_t ADC1_Read()
{
uint8_t i;
uint16_t adc_value=0;
uint32_t adc_voltage=0;

for(i=0;i<4;i++)
{
    ADC1_StartConversion();
    while(RESET==ADC1_GetFlagStatus(ADC1_FLAG_EOC));
    ADC1_ClearFlag(ADC1_FLAG_EOC);//等待转换完成,并清除标志
    adc_value=adc_value+ADC1_GetConversionValue();
}
adc_voltage = adc_value/4;


return adc_voltage;
}



limosky 发表于 2019-10-29 16:47:05

重新设置了一遍初始化的参数。数据对齐方向改成了右对齐之后数据就正常了。

limosky 发表于 2019-10-29 16:47:46

重新设置了数据对齐方向,就正常了

mylovemcu 发表于 2019-10-30 16:43:06

你选择的是左对齐换成右对齐就可以了

limosky 发表于 2019-10-30 17:29:43

mylovemcu 发表于 2019-10-30 16:43
你选择的是左对齐换成右对齐就可以了

嗯嗯,解决了

butterflyspring 发表于 2019-11-1 15:31:27

哈哈,这就是STM8左对齐,右对齐的不同之处。其实左对齐也可以作为查表或判断应用,只是表和数据不同而已:)
页: [1]
查看完整版本: STM8 ADC1读出了16192数值,是不是我设置错了?