STM32L051内部温度传感器温度读取

条件:

  1. STM32L051开发板
  2. HAL库
  3. 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。


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部