博客首页 | 排行榜 |

wolaiye945的博客

我的STM32F学习之路

个人档案
博文分类
STM32内置温度传感器探究  2009-01-23 22:15
今天晚上才有时间来学东西,本来想在原来的基础上把温度传感器搞出来,但最终发现还是有点儿轻敌,时间不大够,看来只好以后啦~把查到的资料和心得分享一下。

其实初始化仿照例程14通道的滑动变阻器,改为16通道的内置温度传感器就可以,我用的ADC1,至于2是否一样还没有尝试,但是3好像有些特殊,温度传感器尽量别用。中文的手册局限性还是很大的,不少内容被略去了,还是看英文的踏实。

●  支持的温度范围:-40到125度
●  精确度:+/- 1.5° C

参考手册的要求如下:
1.  选择ADCx_IN16输入通道
2.  选择采样时间大于2.2 μs  (我用的最大转换周期)
3.  设置ADC控制寄存器2(ADC_CR2)的TSVREFE位,以唤醒关电模式下的温度传感器
4.  通过设置ADON位启动ADC转换(或用外部触发)
5.  读ADC数据寄存器上的VSENSE 数据结果
6.  利用下列公式得出温度
温度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25

其它参数要到芯片手册上找,我是E板的,也就是103ZET6的芯片,手册上的参数如下:
Avg_Slope(1) Average slope 4.0 4.3 4.6 mV/°C
V25(1)  Voltage at 25 °C 1.34 1.43 1.52 V

按照公式转换一下就应该没问题,输出的时候加一个BCD转换函数再加LCD_DrawString(是原来的函数,不是我改的那个)应该就没问题啦。不过他手册上写得误差1.5摄氏度着实让人心寒...呵呵,权当学习吧,反正本来测的就是芯片的温度,也跟外界温度是有出入的。

明天开始就要回老家过年啦,笔记本和开发板带着继续研究,但上网不方便,也许就很少更新甚至不能更新啦。再回来可能就要初八左右啦~在这里提前祝各位春节愉快、阖家幸福~!
类别:心得体会 |
上一篇:STM32F内部温度传感器实验与心得 | 下一篇:初试STM32中断
以下网友评论只代表其个人观点,不代表本网站的观点或立场