今天主要还是在颓废地弄着课程设计,昨天把板焊好,然后把程序烧进去52里面,发现1602显示为"E4.5" 开始以为是程序问题
接线
第二天开始检查时,发现探头时间一长会自行发热,明显接线有问题。之前是按照网上说的:红色(VCC) 蓝色(DS) 黄色(GND),然后再看看其他组的接线,发现我的果然接反了,应该是:红色(VCC) 黄色(DS) 蓝色(GND) 。换好接线后,探头就没事了
PS:其实一开始没发现是接线问题,还以为是程序出错了,通过一步步调试发现,初始化没问题,问题出在温度转换那一步(DS18B20需要返回1表示转换完成),DS18B20没有返回转换完成的信号,因为初始化正常了,所以没怀疑是接线问题,现在想想看,应该是因为接错线,DS恒为0,所以在初始化函数中,认为是DS18B20响应了,所以才通过初始化函数。
上拉电阻
开始显示的数据依旧出错,开始苦逼调试了..........
开始以为是数据采集位数的问题,以为自己的不支持9bit采集(后来查商品,发现大家都是DS18B20,都是支持的.......),换了12bit采集问题依旧;
还以为是数据传输问题(看到有说加了屏蔽线的DS18B20卖的),后来发现这个太不实际了。
然后回想了自己之前总结
调试心得——软硬兼施 - 以技术自娱的Geeker - 博客频道 - youkuaiyun.com
从软件角度来说,在开发版运行的程序跟新焊的板子上是一样的,这样就排除了软件问题。