引用: haimao 发表于 2008-12-1 23:18 void ADC_Temperature_Read(void){ #define Vdd 34600#define ...
vu16 GetTemp(vu16 advalue)
{
vu32 Vtemp_sensor;
vu16 Current_Temp;
// ADC转换结束以后,读取ADC_DR寄存器中的结果,转换温度值计算公式如下:
// V25 - VSENSE
// T(℃) = ------------ + 25
// Avg_Slope
// V25: 温度传感器在25℃时 的输出电压,典型值1.43 V。
// VSENSE:温度传感器的当前输出电压,与ADC_DR 寄存器中的结果ADC_ConvertedValue之间的转换关系为:
// ADC_ConvertedValue * Vdd
// VSENSE = --------------------------
// Vdd_convert_value(0xFFF)
// Avg_Slope:温度传感器输出电压和温度的关联参数,典型值4.3 mV/℃。
Vtemp_sensor = ((vu32)advalue )* 3300>>12 ; //工作电压3.3伏.
Current_Temp = 25 +((vu16)Vtemp_sensor - 1430)*10/43;
return Current_Temp;
}
大佬这个是什么问题啊,这个是我找的一个,这个我的芯片算出来就是52,你写的我不太懂 Vdd_convert_value什么意思,还有这一句ADC_ConvertedValue = ADC1->DR & Vdd_convert_value;这个DR是什么意思?