指定不存在的设备_如何利用64位ROM指定DS18B20

DS18B20是常用的数字温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

DS18B20独特的单线接口方式,使得它可以仅凭一条口线就可与微处理器连接,十分方便。

但是这样也带来了一个问题,当我们想要同时使用多个DS18B20的时候,我们难道要为每一个DS18B20单独配置一条IO口来进行通信吗?这样显然是不现实的,那么我们有没有一种方法,可以使我们在单线上控制多个设备呢?

这就涉及到对DS18B20内部64位ROM编码的利用。

在每一个DS18B20的内部,都有64位独特的激光ROM编码,分别由一个字节的FAMILY CODE,六个字节的SERIAL NUMBER,一个字节的CRC BYTE组成。

编码就像人的身份证一样,具有唯一性。当单线上存在多个温度传感器时,我们能通过它,指定一个DS18B20进行操作。这样的目的是为了防止DS18B20回应处理器时争抢总线,导致处理器无法正确接收数据。

接下来我就说说如何利用这64位的编码,来对DS18B20进行操作。

一、最基本的驱动

需要对DS18B20进行操作,最基本的驱动文件肯定是不能少的,没有这个,我们就什么也做不了。

所以我们首先编写驱动文件。(因为这个是基础,所以我不在这里多说,直接附上代码)

延时函数:(这个函数因为芯片晶振的不同,也会有所不同,所以我们不给出具体代码)

void Delay1us();

void Delay60us();

void De

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值