个人觉得不应该改变输入输出状态。建议用USART设置成1-wire试试。
先确认硬件是否连接好,IO是否连对,有无上下拉,测试电压是否正常(包括电源,IO口)。
调试程序IO输出,是否能正常输出,是否能读入。
再用检测程序时序是否正确,数据是否正确。
如果都正确再更换传感器零件测试一下。
IO配置浮空输入就可以了,数据上拉的
解决了没?这个不难啊,延时改一下试试。
LIUBEIHUA 发表于 2016-5-4 16:16
STM32的DS18B20的测温
设置成开漏输出,外接上拉电阻,
没有说明芯片类型,如是F103直接设成开漏输出。
103的,现在改了成开漏了,能读数据了,但是读出来的数据要么全为0,要么全为1,而且低八位总是为0
wtliu 发表于 2016-5-4 16:19
有做上啦设置吗?
有上拉电阻。能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0
jtc_88 发表于 2016-5-4 16:46
公司电脑 不太好弄 我有一个 STM32F030 读取DS18B20的程序 上传不上去
《DS18B20.c》
谢谢,不过我的是103的。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0
wambob 发表于 2016-5-4 17:40
18b20是单总线器件,外部需要上拉,而且时序对延时有要求,我开始跳这个,也没调成,最后还是用别人的例子 ...
谢谢。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0
zhang7309 发表于 2016-5-4 19:32
首先确定传感器是不是好的
传感器是好的。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0
sacq12 发表于 2016-5-4 19:40
楼主给出你的连线图,免得大家怀疑上拉电阻什么的;
如有可能,用逻辑分析仪看波形更好。 ...
图片中的左边是电源线,中间是数据线,右边是地线。
现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0