This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我的建议还是使用内部参考电压会比较方便;
如果就是想用外部参考电压,offset可以通过在0℃时测量得出,slope可以通过如下公式换算,也可以通过测量整定。
内部
外部
客气啦
你看一下那边的回复,他是以使用2.5V外部参考为例进行计算的。
如果使用的是3.0V外部参考,则
0℃ offset = 1750 * (3.0 / 3.3) = 1591 LSBs
slope = 5.56 * (3.0 / 3.3) = 5.05 LSBs
即 1 / 5.05 = 0.20 °C/LSB
似乎还是有些问题,以下是我的代码:
_iq15 temp,IQslope,IQslope30; Uint16 ofs,ofs30; IQslope = _IQ15(0.18);// ofs = 1750;// ofs30 = ofs*3.3/3.0; IQslope30 = _IQ15mpy( IQslope, _IQ15(3.3/3.0)); temp = ((long)(AdcResult.ADCRESULT7 - ofs))<<15; temp = _IQ15mpy( temp, IQslope); chiptemperautre = _IQ15toF(temp); temp = ((long)(AdcResult.ADCRESULT7 - ofs30))<<15; temp = _IQ15mpy( temp, IQslope30); chiptemperautre30 = _IQ15toF(temp);
我的外部参考电压是3.0v, 当使用3.0v参考电压时,chiptemperautre30大约为31,当切换到内部参考电压时(调试器修改寄存器位ADCREFSEL),chiptemperautre 大约为27。
用红外测温设备测得芯片表面温度为49度,环境温度为28度。手摸芯片表面能感觉到芯片发热,所以我觉得测量得到的温度不正常,是我的代码有问题吗?用的芯片是28035PNT。