STM32单片机对DS18B20温度传感器的驱动

网友投稿 293 2022-11-18

STM32单片机对DS18B20温度传感器的驱动

其内部结构如下所示

DS18B20的通讯方式是单总线的,一般而言,我们遇到的封装都是如下

其中DQ就是主要的通讯线路,对DS的读取和写入都需要主机来控制DQ线路的DQ高低电平的时间来确定,具体如下

一般而言,DQ线需要接一个上拉电阻,所以,才写操作的最后一步都需要将总线拉高

向DS写0需要总线拉低至少60US最多120US就算完成,也就是说,1--》0(持续60-120us)--》1 写入了0

像DS写入1需要总线拉低最少1us最多15US,然后总线拉高,拉高时间至少15us,一般40us以上即可 1-》0(1-15us,推荐5us)--》1(持续15us以上,推荐40us)

由此可见,DS的总线采样实在总线拉低之后的15us开始的

读取DS分别为读取1和读取0,但是这两者时序是统一的首先总线拉低至少1us,最多15us,还是选择2us,然后释放总线(也就是说进入输入模式),等待15us以上的事件,然后采样,高电平为1低电平为01--》0(持续2us,最多15us)--》等待15us以上60us以下--》采样总线电平,得到1或者0,记得采样完成之后切换到输出模式将总线拉高便于下一次使用DS18B20的命令

启动温度转换的命令是0X44,读取命令是0XBE

所以一般而言,对于DS的驱动包含以下几步

我们在读取的时候只读取两个字节的原因在于DS的存储器布局

前两个就是我们需要的温度,当然也可以读取全部的,扩展驱动达到其他目的

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大数据学习笔记-------------------(21)
下一篇:SpringBoot 日志的配置及输出应用教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~