STM32L051内部温度传感器温度读取
条件:
- STM32L051开发板
- HAL库
- Keil MDK 5
官方RM0377 参考手册读内部温度公式:

参考手册给了2个公式,第1个是利用出厂校准的130度的值和30度的值来计算,第2个公式是利用V30和Avg_Slope来计算。 然而在我能找到的资料当中并未找到STM32L051的V30是多少,网上找到的都是F103或者F407的值,而且是V25不是V30。所以只能利用公式一来计算。
STM32L051的规格书中给出了TS_CAL2和TS_CAL1的值:

TSENSE_CAL1即 TS_CAL1,TSENSE_CAL2即TS_CAL2。

ADC配置使用CUBE配置,使用DMA。以下是计算的部分的程序:
//MCU内部温度传感器
#define TEMP130_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FF8007E)) //130摄氏度时的MCU内部温度传感器校准值
#define TEMP30_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FF8007A)) // 30摄氏度时的MCU内部温度传感器校准值temp = ((130.0 - 30) / (*TEMP130_CAL_ADDR - *TEMP30_CAL_ADDR) * (int16_t)(adc_measure_buffer - *TEMP30_CAL_ADDR)) + 30;printf("temp = %.2f \r\n",temp);
我的MCU读出TS_CAL1=902,TS_CAL2=668。

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
