本帖最后由 nolanpeers 于 2015-10-12 11:33 编辑
各位大神,我用的是FRDM-K22F板子。芯片是MK22FN512VLH12.用的是通道ADC0_SE12,16位。
16位,是不是,2的16次方是65536,则,模拟量精度就是3.3/(2的16次方)=0.05mv
程序如下:
uint32_t adcValue = 0; // ADC value
float result_Value = 0; // result
chnConfig.chnIdx = (adc16_chn_t)ADC16_CHN;// ADC16_CHN=kAdc16Chn12 = 12U,选择ADC0_SE12
// Fetch the conversion value. //ADC16_INSTANCE=0, ADC16_CHN_GROUP=0
adcValue = ADC16_DRV_GetConvValueSigned(ADC16_INSTANCE, ADC16_CHN_GROUP);//得到转换结果,ADC0_Rn
// Show the current temperature value.
PRINTF("\r\n ADC converted value: %ld\t", adcValue );
result_Value = (float)((adcValue)*3.3);
PRINTF("\r\n AD_value %lf", resualt_Value );
为何输出结果得不到浮点数? 结果如下图1,
而我将PRINTF("\r\n AD_value %lf", resulat_Value );改成PRINTF("\r\n AD_value %ld", resulat_Value );时,结果为如下图2:
请问大神我如何才能输出正确的浮点数?谢谢!
是不是,在读到的ADC0_Rn 乘以精度0.05,也就是 resualt_Value=adcValue*0.05就是最终的结果吗?我用的是3.3V的电压,还是 resualt_Value=adcValue*3.3?
|