M_my 发表于 2019-8-28 10:32 兄台一出口,便知实力不俗 |
多谢各位的回复!的确是时序问题,经过调整,四个18B20可以读出三个,有一个读出来的温度值永远是85,那三个正常的18B20又有一个超过30度时不时会变成85,超过50度彻底变成85,放置好几分钟又正常,这就说明,这批18B20肯定是假货,而且毫无悬念!好在只有四个,以前我用过的18B20从来没有出过问题。在这里我给大家提个醒,序号为1710C4+816AC的18B20肯定是假货,谁买谁上当。 |
1. 不管假货真货都能读温度的; 2. 一般都是时序问题,当然也也可能电路问题; 3. 时序写严格一点吧,示波器观察下。 |
读取温度的两次间隔要拉远一点,至少750ms |
85度是18b20初始化的数据,这说明是不是初始化过后就没有数据更新了,一般是延时函数有问题 |
是否是上拉太强 |
在实验板上,左边的18B20一切正常,右边的18B20就是不行,一直都是85度,上拉电阻肯定正常,各种时序调整过还是不行,转换温度指令发送后加延时,可以读出27,但是,温度如何变化还是27 |
时序不对呀 |
假货肯定不是,能读出85至少器件传送数据是没有问题的,主要要查读出的时序关系是否正确,与程序的结构和编写有关,与单片机晶振频率有关,建议先把时序调整一下,尽量满足较大的时序关系。 |
是没有上拉吗。 |