本帖最后由 zhanan 于 2023-7-22 09:41 编辑
用户手册中描述(L052为例):
23.10 温度传感器
CW32L052 内置温度传感器模块,传感器的输出电压随温度变化,设置 ADC 模块的采样通道为内部温度传感器,通过 ADC 测量结果可计算得到当前的环境温度。
温度传感器默认处于关闭状态,通过设置控制寄存器 ADC_CR0 的 TSEN 位域为 1,使能温度传感器。
环境温度计算公式如下:
环境温度 = T0 ×0.5 + 0.0924 × Vref ×( AdcValue – Trim )
其中:
Vref 是当前 ADC 模块的参考电压,取值为 1.5V 或 2.5V。
T0 是8位的初始校准温度值,记录在芯片的FLASH存储器中,其地址是0x0010 0A09,单位是0.5摄氏度,
读取出来的值需要除以 2,才是实际的温度。
AdcValue 是 ADC 模块测量温度传感器输出电压的 ADC 转换结果,取值范围为 0 ~ 4095。
Trim 是 16 位的校准值,计算时需要从芯片的 FLASH 存储器中读出,其存放地址如下表所示……
问题:Trim 值比 AdcValue 可能小,也可能大,大的话( AdcValue – Trim )的结果是负数。上述公式是数学意义上的公式,非编程公式。编写手册时,最好能写清楚这一点。详见 https://bbs.21ic.com/icview-3274294-1-1.html
|