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

2019-08-16 18:59发布

结果 结果 图一.png 图二.png 图三.png 图四.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
天际超体
1楼-- · 2019-08-16 22:36
延时要严格按照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;
这个怎么理解
dmmcu
2楼-- · 2019-08-17 03:53
18b20初始化了吗
月光独灵
3楼-- · 2019-08-17 05:13
 精彩回答 2  元偷偷看……
烟酒不沾
4楼-- · 2019-08-17 08:35
你的初始化和读写时序中的延时和手册对一下,那几个延时感觉不对!@
月光独灵
5楼-- · 2019-08-17 09:50
烟酒不沾 发表于 2016-7-30 17:11
你的初始化和读写时序中的延时和手册对一下,那几个延时感觉不对!@

延时都是用个富余量的,比如要求至少480us的,我给它500us,读写的延时也是如此,除了延时,逻辑上有什么问题吗?
烟酒不沾
6楼-- · 2019-08-17 10:35
本帖最后由 烟酒不沾 于 2016-7-31 10:40 编辑
月光独灵 发表于 2016-7-31 09:27
延时都是用个富余量的,比如要求至少480us的,我给它500us,读写的延时也是如此,除了延时,逻辑上有什么 ...

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

一周热门 更多>