你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32内置温度传感器测温度公式到底是哪一个呢?

[复制链接]
woshilee 提问时间:2015-7-26 17:02 /
从手册上看的是:
/* Temperature sensor calibration value address */
#define TEMP110_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7C2))
#define TEMP30_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7B8))
#define VDD_CALIB ((uint16_t) (330))
#define VDD_APPLI ((uint16_t) (300))
int32_t temperature; /* will contain the temperature in degree Celsius */
temperature = (((int32_t) ADC1->DR * VDD_APPLI / VDD_CALIB)
- (int32_t) *TEMP30_CAL_ADDR );
temperature = temperature * (int32_t)(110 - 30);
temperature = temperature / (int32_t)(*TEMP110_CAL_ADDR
- *TEMP30_CAL_ADDR);
temperature = temperature + 30;

用这个测出来是70多度
在网上搜的是图片上那样测出来是40多度,到底哪个可以用啊?


ADC初始化:
ADC_InitStructure.ADC_Resolution=ADC_Resolution_12b;
        ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;
        ADC_InitStructure.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None;
        ADC_InitStructure.ADC_ExternalTrigConv=DISABLE;
        ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;
        ADC_InitStructure.ADC_ScanDirection=ADC_ScanDirection_Upward;
        ADC_Init(ADC1, &ADC_InitStructure);
        ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
               
  ADC_Cmd(ADC1, ENABLE);
        ADC_TempSensorCmd(ENABLE);
  ADC_ChannelConfig(ADC1, ADC_Channel_16, ADC_SampleTime_239_5Cycles);
        ADC_StartOfConversion(ADC1);


2898393893570.jpg
收藏 1 评论12 发布时间:2015-7-26 17:02

举报

12个回答
creep 回答时间:2015-7-26 17:47:02
70多度肯定不太可能,正确的方法应该是你那个图片上的计算公式,如果不太清楚可以看看参考手册上的计算公式,
adc.jpg
上面的那几个参考值可以在数据手册上找到,具体值你要看看你用的那个芯片的数据手册上的值是多少。
adc.jpg
好像还有2个校准值可以使用,具体的值保存在了内部flash的上,
adc.jpg
lkl0305 回答时间:2015-7-26 22:10:06
学习了  
mark0668 回答时间:2015-7-26 22:15:57
学习了..
woshilee 回答时间:2015-7-26 22:17:24
前边那个计算公式也是手册上的
jiaswang 回答时间:2015-7-27 08:08:18
学习了,感谢~!
逆风的沙 回答时间:2015-7-27 10:07:33
学习了
JackieLaura 回答时间:2015-7-27 11:35:36
学习了。。。
沐紫 回答时间:2015-7-27 15:20:06
学习了……楼不能歪
阿本 回答时间:2015-7-28 08:55:30
学习了                              
infofans 回答时间:2017-12-23 20:55:36
creep 发表于 2015-7-26 17:47
70多度肯定不太可能,正确的方法应该是你那个图片上的计算公式,如果不太清楚可以看看参考手册上的计算公式 ...

请问一下怎样把TS_CAL1和TS_CAL2的值取出来呢?
maxtch 回答时间:2017-12-23 21:41:43
我的建议是不要管这个典型温度曲线,而是自行校准一下。产品测试一般会用到恒温箱,就利用这个恒温箱来取两三个基准点拟合成一个传递函数就可以了(室温、恒温箱高温、恒温箱低温三个基准点拟合一条二次曲线出来。)
epochal 回答时间:2017-12-24 08:02:52
学习了!

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版