找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机串口 18B20 接收 时好时坏

查看数: 3189 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-2-7 19:50

正文摘要:

开起pwm(开灯) 后 18B20 数值出错 请各位大师帮我看看   O(∩_∩)O谢谢 程序如下 #include <reg51.h> #include <temp.h> #include <stdio.h>           ...

回复

ID:390416 发表于 2021-2-8 18:48
你这个代码居然有死等几百us  ,去看看我们 人人学会单片机的代码
http://www.51hei.com/bbs/dpj-200968-1.html
ID:213173 发表于 2021-2-8 17:44
如果只是为了调灯的亮度,没必要设置这么高频率的PWM,中断里运行的语句越少越好。否则会破坏18b20读写时序而出错。串口通讯也要把中断方式改查询方式为好。
ID:290576 发表于 2021-2-8 15:16
xhaity 发表于 2021-2-8 13:07
上传一个ds18b20的crc校验程序,供参考。

文件错误
ID:290576 发表于 2021-2-8 15:15
justinchill 发表于 2021-2-8 08:43
有可能是你在Ds18b20ReadByte函数里总线释放的时间有些短,适当添加一点延时再试试,就是i++那里

加上两个空指令后 直接就错了
ID:373388 发表于 2021-2-8 13:07
上传一个ds18b20的crc校验程序,供参考。 crc8.rar (1.03 KB, 下载次数: 8)

ID:373388 发表于 2021-2-8 10:39
18b20在读写时,时序比较严格,中断以后基本上都会打乱时序,读数错误,利用crc校验, 验证数据,如果数据不正确,重新读数;
ID:871393 发表于 2021-2-8 09:06
我用hx711时, 发现负数的移位有可能得出错误结果(估计是编译器有差异), 使用一般加减乘除试试
ID:115204 发表于 2021-2-8 08:43
有可能是你在Ds18b20ReadByte函数里总线释放的时间有些短,适当添加一点延时再试试,就是i++那里
ID:420836 发表于 2021-2-8 08:27
当PWM开启时,定时器中断会扰乱18B20的延迟。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表