H_JEN 发表于 2016-5-8 16:19:20

cos12a-21701 发表于 2016-5-5 12:27
先确认硬件是否连接好,IO是否连对,有无上下拉,测试电压是否正常(包括电源,IO口)。
调试程序IO输出,是 ...

谢谢。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:19:36

taonsh 发表于 2016-5-6 15:53
解决了没?这个不难啊,延时改一下试试。

还没解决。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:19:59

cos12a-21701 发表于 2016-5-5 12:27
先确认硬件是否连接好,IO是否连对,有无上下拉,测试电压是否正常(包括电源,IO口)。
调试程序IO输出,是 ...

嗯,这些都没问题了。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:20:54

watershade 发表于 2016-5-4 22:22
个人觉得不应该改变输入输出状态。建议用USART设置成1-wire试试。

嗯,现在把输出模式改成开漏的,就不用转换输入输出模式了。能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:21:46

dsjsjf 发表于 2016-5-4 13:25
设置成开漏输出,外接上拉电阻,使用时不需要切换输入输出,试试

嗯,这样做了。现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:22:40

a6552918 发表于 2016-5-4 13:26
应该配置为输入浮空。

现在把输出模式设置为开漏的了,不用不断转换输入输出模式,能读数据,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:23:53

jinglixixi 发表于 2016-5-4 13:27
DS18B20数据端是否加了上拉电阻。

有连上拉电阻,现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:24:28

zhoupxa 发表于 2016-5-4 13:32
GPIO应设置为漏极开路

嗯,设置为开漏了,现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:25:02

huaiqiao 发表于 2016-5-4 13:37
其实这种Onewire的,要注意时序问题

嗯,是啊。之前延时程序有问题,现在调回来了,现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0

H_JEN 发表于 2016-5-8 16:25:21

power568 发表于 2016-5-4 13:41
确定总线时间和手册给出的时间是否严格匹配,最好留有余量。。。

有余量的,现在能读数据了,但是读出来的数据,高八位要么全为0,要么全为1;低八位总是为0
页: 1 2 3 [4] 5 6
查看完整版本: 基于STM32的DS18B20的问题