实验条件:STM32F103最小系统板(网上10几元那种)、LM35模块 使用了PB0引脚,ADC采集温度值。
关键程序代码:
while(1){
/* Printf message with AD value to serial port every 1 second */
AD_value = ADC_ConvertedValue;
AD_value = (AD_value/4096)*3.3*1000/10;
temperature=AD_value;
printf("The current temperature value =%d 0C \r\n", temperature);
delay_ms(1000); /* delay 1000ms */
}
实验效果:可以输出温度,但与实际温度相差近一倍,不知道怎么回事?求助!
还是不正确AD_value = ADC_ConvertedValue[1];
temperature=(float) AD_value*330/4096;
printf("The current X temperature value =%4.2f V \r\n", temperature); 结果仍然60多,实际温度31度