单片机/MCU论坛
登录
直播中
吴湛
9年用户
833经验值
擅长:417804
私信
关注
[问答]
请问ds18b20多点测温如何获取序列号?
开启该帖子的消息推送
DS18B20
序列号
网上找的几个驱动程序都没法获取序列号 请问程序应该怎么写?
回帖
(1)
顾天天
2023-11-8 10:53:01
首先要得到挂在同一总线的ds18b20的ROM序列号
读取序列号命令是0x33
在初始化18b20后向18b20写0x33(在测序列号的时候总线上只能挂一只18B20)
然后18b20会返回64个比特的序列号;
每一个18b20的序列号不一样;
得到所有的18B20的序列号后将这些序列号事先存入程序;
之后要识别的话向总线写ROM匹配命令即0x55
然后向总线写你要找的18B20序列号;
之后就只有这个18B20会响应单片机的指令;
另外:在启动温度转换的时候先向18B20写0xcc(跳过ROM匹配)这样所有在总线上的18B20都收的到命令
然后写启动温度转换命令0X44;
事实上18B20启动温度转换命令或者读取温度数据命令之前必须要有0xcc(跳过ROM匹配)或是0x55(ROM匹配);这其实就是在发送命令前先指定接收者,可以是全部的18B20或者是其中一个。
至于18B20序列号自动检测。。。相当难搞。。检测命令以及检测方法在DATASHEET上有,不过建议还是直接事先测好序列号然后存入程序来识别比较简单。
首先要得到挂在同一总线的ds18b20的ROM序列号
读取序列号命令是0x33
在初始化18b20后向18b20写0x33(在测序列号的时候总线上只能挂一只18B20)
然后18b20会返回64个比特的序列号;
每一个18b20的序列号不一样;
得到所有的18B20的序列号后将这些序列号事先存入程序;
之后要识别的话向总线写ROM匹配命令即0x55
然后向总线写你要找的18B20序列号;
之后就只有这个18B20会响应单片机的指令;
另外:在启动温度转换的时候先向18B20写0xcc(跳过ROM匹配)这样所有在总线上的18B20都收的到命令
然后写启动温度转换命令0X44;
事实上18B20启动温度转换命令或者读取温度数据命令之前必须要有0xcc(跳过ROM匹配)或是0x55(ROM匹配);这其实就是在发送命令前先指定接收者,可以是全部的18B20或者是其中一个。
至于18B20序列号自动检测。。。相当难搞。。检测命令以及检测方法在DATASHEET上有,不过建议还是直接事先测好序列号然后存入程序来识别比较简单。
举报
更多回帖
rotate(-90deg);
回复
相关问答
DS18B20
序列号
怎么在arm7种读
ds18b20
的
序列号
2016-06-23
2659
如何
获取
总线上所有器件的
序列号
?
2019-06-26
1432
ds18b20
的
序列号
问题
2013-05-25
13665
ds18b20
序列号
匹配
2016-06-30
8247
ds18b20
序列号
的读取
2016-06-27
3928
DS18B20
序列号
的读取问题
2012-07-10
7168
求大神帮忙
2014-04-25
1552
多个
DS18B20
测温
仿真
2018-05-07
3843
关于
DS18B20
的搜索rom
序列号
程序问题
2023-09-28
385
用
DS18B20
实现
多点
测温
2016-07-31
6881
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分