今天用ADC1的IN10通过NTC测温度,如下:开始用的函数如下:
ADC_ConvVolatge是:__IO uint16_t ADC_ConvVolatge;类型
static void ADC_GetConvVolatge1(void)
{
ADC_ConValue = ADC_GetValue();//读取ADC1的转换值 ADC_ConValue数值正常
ADC_ConvVolatge = (ADC_ConValue/4096)*3300;//但是这句ADC_ConvVolatge的值一直为0,不知何故?
}
后来改成的函数如下:
ADC_ConvVolatge是__IO float ADC_ConvVolatge;类型
static void ADC_GetConvVolatge2(void)
{
ADC_ConValue = ADC_GetValue();//读取ADC1的转换值 正常
ADC_ConvVolatge = (float)ADC_ConValue/4096*3.3;
ADC_ConvVolatge = (uint16_t)(ADC_ConvVolatge*1000);//ADC_ConvVolatge 数值正常
}
请教大家,到底是哪里的问题呢?虽然问题用函数2可以解决,但是函数1不知道问题出在哪里了? |