OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8886|回复: 9

关于STM32内部温度传感器的问题!

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2013-6-18
在线时间
0 小时
发表于 2013-11-27 23:19:01 | 显示全部楼层 |阅读模式
STM32内部温度传感器的计算公式为:T(℃)={(V25-Vsense)/Avg_Slope}+25 。
该式中: 
 V25=Vsense在 25 度时的数值(典型值为:1.43)。 
 Avg_Slope=温度与 Vsense 曲线的平均斜率(单位为 mv/℃或 uv/℃)(典型值为 4.3Mv/
℃)。 

按照原子哥的程序定义了float temp; 和 float temperate;
temp=(float)adcx*(3.3/4096); 
temperate=temp;//保存温度传感器的电压值 

然后利用公式去算temperate=(1.43-temperate)/0.0043+25;//计算出当前温度值 

但是,当读出的 temperate 值比1.43小的时候,算出的温度是正常的,而当读出的 temperate 值比1.43大的时候,算出的温度就直接是0了!

请问这是怎么回事?










正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-11-28 12:09:16 | 显示全部楼层
回复【楼主位】yezi198912:
---------------------------------
“然后利用公式去算temperate=(1.43-temperate)/0.0043+25;//计算出当前温度值”这个计算公式里面,你的 temperate是浮点数,你后面又除与一个0.0043,你这个0.0043没有定义数据类型,MCU直接就当整数0处理了,你可以改为temperate=((float)1.43-temperate)/(float)0.0043+(float)25;这样试下行不行
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2013-6-18
在线时间
0 小时
 楼主| 发表于 2013-11-28 23:02:50 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
也是不行啊。当读出的 temperate 值比1.43小的时候,算出的温度是正常的,而当读出的 temperate 值比1.43大的时候,就不行了!
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-11-29 08:47:16 | 显示全部楼层
看你贴出的图片数据计算了一下,你的芯片温度好高啊,100多℃


你的ADC设置不对吧,看上面的表格
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

23

主题

81

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2013-10-28
在线时间
0 小时
发表于 2014-3-20 23:18:32 | 显示全部楼层
参考电压Vref不是3.3V,实际要自己测一下。。。。USB供电大概是3.05V
回复 支持 反对

使用道具 举报

头像被屏蔽

65

主题

277

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2013-8-11
在线时间
29 小时
发表于 2015-8-14 09:44:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

65

主题

277

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2013-8-11
在线时间
29 小时
发表于 2015-8-14 09:53:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

1

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2016-3-8
在线时间
41 小时
发表于 2017-5-18 09:20:27 | 显示全部楼层

解决了吗,我现在也是用3v参考电压,算出来不对,怎么解决的
回复 支持 反对

使用道具 举报

6

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
368
金钱
368
注册时间
2018-8-31
在线时间
115 小时
发表于 2018-9-8 15:58:17 | 显示全部楼层
八度空间 发表于 2013-11-28 12:09
回复【楼主位】yezi198912:
---------------------------------
“然后利用公式去算temperate=(1.43-temper ...

当0处理是非法操作啊,??
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2018-9-8 22:35:59 | 显示全部楼层
长昵称不被占用 发表于 2018-9-8 15:58
当0处理是非法操作啊,??

我的正常
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 06:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表