IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ds18b20使用缺陷 -> 正文阅读

[嵌入式]ds18b20使用缺陷

ds18b20使用缺陷

蓝桥杯单片机

直接一次不能读取到温度

如果直接是单独读取一个ds18b20的温度数值,那么这个温度读出来显示的就只是85这个

奇怪的数字

这很有可能是一个默认的温度数值

在没有执行温度转换命令之前的温度寄存器之中的数值

原因可能是进行温度转换之后没有足够的延时时间来进行完全的执行完温度转换的命令

因此可以考虑进行多个延时来观察到底需要多少的延时(在执行温度转换的命令之后)

由此也可以预见的就是每次读取温度得到的数值其实是上一次温度转换的温度数值

那么每次读取温度命令如何才能让他是真正的读取到自己的数值

我觉得可行的就是能够明确的有指示这次温度已经转换完毕

然后进行温度读取这样的话温度读取才是当时的数值

接下来的问题就是那一点能够观察到温度转换是否已经完成

经过一段时间的测试发现在执行温度转换命令后延时600毫秒可以正常显示温度

即使这是第一此读取温度

但是在550ms的时候就不行了

继续测试下去已经没有意义了

这个问题是在温度记录器这个题目之中发现的

如果真的每次都执行温度转换命令之后延时600毫秒的话

显示界面就会中断停止而不执行其他命令

但是不使用延时函数就会导致每次测量得到的温度都是

上一次温度转换的温度

我想到了两种方法可以使他正常显示

1.就是在函数初始化的时候就直接写一个温度转换的命令

这样每次读取到的温度就算是第一次也是会直接读取到正常的

温度数值,而不是显示一个85

2.就是在主循环之中不断的执行温度转换命令

但是不进行读取操作

这样可以保证在温度数值寄存器之中的温度数值总是

保存着在当前时间段的600ms附近的温度数值

这种方法比较合适

第一种方法终究是治标不治本

同样的这个温度读取函数放在定时器之中也是可以的

个人觉得放在定时器之中50ms读取这个函数的值比较合适

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:22:24  更:2022-04-06 23:22:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:19:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码