OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5049|回复: 8

用的mini stm32开发板,stm32f103rct芯片,DS18B20驱动程序读不出正确的数据,查了好多遍了,不清楚问题出在哪里?

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-11-2
在线时间
10 小时
发表于 2016-7-30 14:05:59 | 显示全部楼层 |阅读模式
1金钱

结果

结果
图一.png 图二.png 图三.png 图四.png

最佳答案

查看完整内容[请看2#楼]

延时要严格按照DS上的来,时序不对什么都做不了的,还想请教楼主一个C语言的问题,如果温度是负的,值要取反加一,那个例程里边只有去反,没有加1,if(TH>7) { TH=~TH; TL=~TL; temp=0;//温度为负 }else temp=1;//温度为正 tem=TH; //获得高八位 tem
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2015-12-3
在线时间
46 小时
发表于 2016-7-30 14:06:00 | 显示全部楼层
延时要严格按照DS上的来,时序不对什么都做不了的,还想请教楼主一个C语言的问题,如果温度是负的,值要取反加一,那个例程里边只有去反,没有加1,if(TH>7)
    {
        TH=~TH;
        TL=~TL;
        temp=0;//温度为负  
    }else temp=1;//温度为正                    
    tem=TH; //获得高八位
    tem<<=8;   
    tem+=TL;//获得低八位
        tem=(float)tem*0.625;//转换     
        if(temp)return tem; //返回温度值
        else return -tem;
这个怎么理解
学到老,活到老
回复

使用道具 举报

2

主题

12

帖子

0

精华

高级会员

Rank: 4

积分
669
金钱
669
注册时间
2012-2-27
在线时间
156 小时
发表于 2016-7-30 14:08:38 | 显示全部楼层
18b20初始化了吗
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-11-2
在线时间
10 小时
 楼主| 发表于 2016-7-30 14:53:17 | 显示全部楼层
dmmcu 发表于 2016-7-30 14:08
18b20初始化了吗

初始化了,在u8 read_t();函数里
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2016-7-30 17:11:56 | 显示全部楼层
你的初始化和读写时序中的延时和手册对一下,那几个延时感觉不对!@
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-11-2
在线时间
10 小时
 楼主| 发表于 2016-7-31 09:27:41 | 显示全部楼层
烟酒不沾 发表于 2016-7-30 17:11
你的初始化和读写时序中的延时和手册对一下,那几个延时感觉不对!@

延时都是用个富余量的,比如要求至少480us的,我给它500us,读写的延时也是如此,除了延时,逻辑上有什么问题吗?
回复

使用道具 举报

13

主题

611

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1929
金钱
1929
注册时间
2014-10-6
在线时间
625 小时
发表于 2016-7-31 09:59:41 | 显示全部楼层
本帖最后由 烟酒不沾 于 2016-7-31 10:40 编辑
月光独灵 发表于 2016-7-31 09:27
延时都是用个富余量的,比如要求至少480us的,我给它500us,读写的延时也是如此,除了延时,逻辑上有什么 ...

这个延时不能随便延个的!
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-11-2
在线时间
10 小时
 楼主| 发表于 2016-8-6 16:39:16 | 显示全部楼层
天际超体 发表于 2016-8-5 11:53
延时要严格按照DS上的来,时序不对什么都做不了的,还想请教楼主一个C语言的问题,如果温度是负的,值要取 ...

我没有按照历程上来写的,副温度时是以补码的形式呈现的,那么就应该取反加一,不知道历程中的程序为什么这么写,虽然我没得出正确的结果,但是我的温度获取的程序是没错的,在51上边有验证
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-7-28
在线时间
1 小时
发表于 2017-7-28 14:00:57 | 显示全部楼层
楼主还有这个开发板的资料吗?能不能给我一份
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 13:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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