DS18B20 与 单总线

news2024/11/24 14:42:32

学习链接:学习B站 up 主金善愚的DS18B20课程

一、单总线概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单总线芯片,在其内部的 ROM 中都编制好了唯一的序列号(64位)。

在这里插入图片描述
在这里插入图片描述
单总线芯片在应用时对时序的要求非常高。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、单总线的基本操作

在这里插入图片描述

在这里插入图片描述

三、DS18B20的主要性能

在这里插入图片描述
电源电压范围:3 — 5.5 V

测量温度范围为 —55 ℃ — +125 ℃

分辨率为 9 ~ 12 位 (包括1位符号位),可由编程决定具体位数。

四、DS18B20的典型电路连接

1、外部供电模式下的单只 DS18B20 芯片的电路连接
在这里插入图片描述
2、外部供电模式下的多只 DS18B20 芯片的电路连接
在这里插入图片描述

五、读取单总线器件的ROM码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

六、读取单总线器件的ROM码

在这里插入图片描述

结论:读取的温度传感器的前56位进行 CRC 校验,与最后一个字节不匹配,但读出来的温度正确。

校验方法:

方法一:

CRC校验网址,选择
在这里插入图片描述
方法二:

C语言编写好的 CRC 代码,参考网址Dallas器件DS18B20的CRC8(x8+x5+x4+1)校验码生成代码:

#include <stdio.h>

typedef unsigned char uint8_t;

uint8_t dat[] = { 0x28,0xBD,0xE8,0x65,0x55,0x5F,0xE5 }; // 实际的DS18B20返回的值是7A。
 
uint8_t  CheckCrc()
{
    uint8_t crc = 0, i, j;
    for (i = 0; i < sizeof dat / sizeof dat[0] ; i++)
    {
        crc = crc ^ dat[i];
        for (j = 0; j < 8; j++)
        {
            if (crc & 0x01) crc = (crc >> 1) ^ 0x8C;
            else crc >>= 1;
        }
    }
    return crc;
} 

int main()
{
    printf("0x%x", CheckCrc()); // 输出校验码 16进制格式
    return 0;
}

运行代码后,输出 0x51,与实际的 DS18B20 返回的值一致,说明读取 64 位的ROM成功。

做个总结:实验了两个程序:一个是读取并显示一个 DS18B20 读取的温度数据,第二个是(单总线)读取并显示两(三)个DS18B20读取到的温度数据。使用的单片机是两个STC12C5A60S2和STM32F103ZET6,读取一个 DS18B20 在STC12C5A60S2上成功,读取多个没有成功(基本完全按照视频中的代码)。在 STM32F103ZET6 上读取多个 DS18B20 采集的温度,没有按照视频中的代码,下载的如下链接的代码:单总线读取并显示三个DS18B20的温度数据在LCD1602上,可以很容易改在串口上进行显示。因为该程序的代码和视频中的代码思路是基本一致的,所以我尝试将其部分代码移植到STC12C5A60S2上(按照视频中的步骤),但是,没有成功。现在也不想弄了,原因是耐不下来心了。

代码均上传至资料库(STC12C5A60S2 程序中的 ESP8266 联网部分可以使用)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1445521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MogaNet实战:使用MogaNet实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文&#xff1a;https://arxiv.org/pdf/2211.03295.pdf 作者多阶博弈论交互这一全新视角探索了现代卷积神经网络的表示能力。这种交互反映了不同尺度上下文中变量间的相互作用效…

操作系统(14)----文件系统的结构

目录 一.文件系统的层次结构 1.用户接口&#xff1a; 2.文件目录系统&#xff1a; 3.存取控制模块&#xff1a; 4.逻辑文件系统与文件信息缓冲区&#xff1a; 5.物理文件系统&#xff1a; 二.文件系统的全局结构 1.文件系统在外存中的结构 &#xff08;1&#xff09;物…

游泳可以戴的耳机有哪些,游泳耳机哪个牌子好性价比高

在游泳训练中&#xff0c;尤其是在进行长距离游泳、控制节奏和进行长时间游泳燃脂时&#xff0c;很容易感到单调乏味。为了帮助自己完成每一个来回&#xff0c;许多游泳运动员除了依赖能量棒和功能饮料外&#xff0c;还会选择通过音乐提高注意力和兴奋度。研究表明&#xff0c;…

《21天精通IPv4 to IPv6》第14天:第二周综合回顾——如何落地IPv6?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

fatal error: rtiostream_utils.h: No such file or directory, rtiostream.h

fatal error: rtiostream_utils.h: No such file or directory 我的设置&#xff1a;

Linux中pipe管道操作

管道的读写操作&#xff1a; 读操作&#xff1a; ​​​有数据&#xff1a;read正常读&#xff0c;返回读出的字节数无数据&#xff1a;1 写段全部关闭&#xff1a;read解除阻塞&#xff0c;返回0&#xff0c;相当于文件读到了尾部 2 写段没有全部关闭&#xf…

【学网攻】 第(25)节 -- 帧中继(多对一)

系列文章目录 目录 系列文章目录 文章目录 前言 一、帧中继是什么&#xff1f; 二、实验 1.引入 实验目标理解帧中继在广域网中的原理及功能&#xff1b; 实验背景 技术原理 实验步骤 实验设备 实验拓扑图​编辑 实验配置 实验验证 文章目录 【学网攻】 第(1)节…

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书信息修改实现

锋哥原创的PyQt6图书管理系统视频教程&#xff1a; PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

C++ //练习 5.19 编写一段程序,使用do while循环重复地执行下述任务:首先提示用户输入两个string对象,然后挑出较短的那个并输出它。

C Primer&#xff08;第5版&#xff09; 练习 5.19 练习 5.19 编写一段程序&#xff0c;使用do while循环重复地执行下述任务&#xff1a;首先提示用户输入两个string对象&#xff0c;然后挑出较短的那个并输出它。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#x…

CTFSHOW web 89-100

这边建议去我的gitbook或者github看观感更好(图片更完整) github:https://github.com/kakaandhanhan/cybersecurity_knowledge_book-gitbook.22kaka.fun gitbook:http://22kaka.fun 🏈 CTFSHOW PHP特性 (1)WEB 89 ①代码解释 <?php/* # -*- coding: utf-8 -*- # @…

第8讲个人中心页面搭建实现

个人中心页面搭建实现 <template><view class"user_center"><!-- 用户信息开始 --><view class"user_info_wrap"><!--获取头像--><button class"user_image"></button> <view class"user_n…

Java多线程:常见的锁策略

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、乐观锁 vs 悲观锁1、乐观锁2、悲观锁 二、重量级锁 vs 轻量级锁1、重量级锁2、轻量级锁3、理解用户态 vs 内核态 三、自旋锁…

LibreOffice Calc 取消首字母自动大写 (Capitalize first letter of every sentence)

LibreOffice Calc 取消首字母自动大写 [Capitalize first letter of every sentence] 1. Tools -> AutoCorrect Options2. AutoCorrect -> Options -> Capitalize first letter of every sentenceReferences 1. Tools -> AutoCorrect Options 2. AutoCorrect ->…

SpringCloud-高级篇(二十一)

前面解决了消息的可靠性、消息的延迟问题&#xff0c;下面研究一下消息的堆积的问题&#xff1a; &#xff08;1&#xff09;消息堆积问题 消息产生堆积&#xff0c;上限后&#xff0c;最早的消息成为死信&#xff0c;有消息被丢弃&#xff0c;这对安全性较高的业务中是不行的…

Uniapp真机调试:手机端访问电脑端的后端接口解决

Uniapp真机调试&#xff1a;手机端访问电脑端的后端接口解决 1、前置操作 HBuilderX -> 运行 -> 运行到手机或模拟器 -> 运行到Android App基座 少了什么根据提示点击下载即可 使用数据线连接手机和电脑 手机端&#xff1a;打开开发者模式 -> USB调试打开手机端&…

小白速成法:剖析一个Android项目以快速上手

这是一个基于Tasmota的设备、用MQTT协议来通信控制的安卓应用程序。支持ON/OFF命令插座和基本的RGB LED控制。 源码点击此处 只需要关注SmartController-main\app\src的代码 项目解压之后如图 只需要关注“app”文件夹里的东西即可&#xff0c;“gradle”是配置文件&#xf…

【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】

文章目录: 1.清除默认样式 1.1清除内外边距1.2清除列表圆点(项目符号) 3.外边距问题-合并现象4.外边距问题–塌陷问题5.行内元素垂直内外边距6.圆角与盒子阴影 6.1圆角 6.2 盒子模型-阴影(拓展) 综合案例一 产品卡片 综合案例二 新闻列表 1.清除默认样式 在实际设计开发中,要…

Pandas深度解析GroupBy函数的妙用技巧【第75篇—GroupBy函数】

Pandas深度解析GroupBy函数的妙用技巧 数据处理和分析中&#xff0c;Pandas是一款非常强大的Python库&#xff0c;提供了丰富的数据结构和功能&#xff0c;使得数据分析变得更加简便高效。其中&#xff0c;GroupBy函数是Pandas中一个重要且常用的功能&#xff0c;通过它我们可…

第四节课[XTuner微调]作业

文章目录 前言作业基础作业-XTuner InternLM-Chat 个人小助手认知微调实践 前言 XTuner 做在第三节课LangChain作业之前&#xff0c;因为第三节课没想好找哪个领域&#xff0c;等第三节课作业做了一起部署。 作业 基础作业-XTuner InternLM-Chat 个人小助手认知微调实践 然…

Ps:直接从图层生成文件(图像资源)

通过Ps菜单&#xff1a;文件/导出/将图层导出到文件 Layers to Files命令&#xff0c;我们可以快速地将当前文档中的每个图层导出为同一类型、相同大小和选项的独立文件。 Photoshop 还提供了一个功能&#xff0c;可以基于文档中的图层或图层组的名称&#xff0c;自动生成指定大…