年前使用了DS18B20,但是一直读不出数据,而设备从示波器上看也有反应,但读出的数据一直是FFFF,几天的时间都没有找到原因,可见原贴:
https://bbs.csdn.net/topics/399060784
的确如各老大所说,这个是比较简单的一种操作方式,但是在核对过多次时序仍没有发现问题,就束手无策、郁闷的要吐血。想着只能留它跨年的时候,忽然看示波器发现,这个延时是有问题的:
我延时了2us,从示波器上看,居然在30以上,发现这个端倪后,对这个延时值进行了修改,发现这个没有啥变动,仍然在30或50以上,而18B20的数据需要在15us以内读取,这就是导致读取一直都是高电平的问题所在。当时我的设备使用的1M,然后改为8M,这个问题就解决了。
结论:在处理问题前,需要保证、检查所使用的设备等前置条件必须正常正确,再说其它的。