您好,
temp = 147.5 -(((75 *(VREFP - VREFN)×ADCCODE)/4096),这是作为数据表中的参考来计算温度的公式。
我们在计算负温度值方面存在一些挑战。
下面是代码片段:
unsigned char
get_temp (void)
{
unsigned int count = 0;
unsigned int temp_X_10 = 0;
unsigned char temp;
count = ADC_COUNT_VOLT_SEQ1[2]; //从 MCU 的内部 ADC 读取的 ADC _code。
TEMP_X_10 =(1475 -(75 * 30 *计数)/4096);//VREFP-VREFN =3V
temp = temp_X_10/10;
返回温度;
}
在这里、temp 被定义为 unsigned char、并且由于没有配置以 signed char 形式将值发送到 CPU、因此它被声明为 unsigned char。
当 temp_X_10值变为负值时,计算得出的最终温度值为153,并随着 temp_X_10的负值的增加而不断降低。
那么,当这个153被发送到 CPU 时,如何将它解码为实际的负温度值?
如果有任何解决方案,那就非常感谢。提前感谢。
此致、
Rohith。