为什么现在用的otm8018b型LCD屏的ID不能被读取?

  以前添加otm8018b的ID老是读不出ID,TimKing说的是这个屏不读ID,没有找到具体原因。最近做otm8018b与JD9161两LCD屏的兼容,刚开始用 AP7350版本,JD9161 LCD没有成功点亮(后面make clean重新编译后才行的)。后来,换用了P6S版来编译下载,jd9161能够成功显示,但是otm8018b不能显示,也就是没有成功兼容。检查了添加的代码,声明等是否正确,然而并没有发现什么问题。

  为什么就没能够读到otm8018b的ID?TimKing就用串口查看开机的日志log,log上显示:没有读到otm8018b的ID。奇怪了,最近一次测试,用一块新的otm8018b,ID是能够读到的。在我这p6s系统兼容jd9161,otm8018b的ID就读不到了。难道之前用的otm8018b有问题,不能读ID。然后在TimKing那够读otm8018b的板子上,下载之前能够读ID的p6s工程,也是不能够读到这老的otm8018b的ID。再仔细看了开机日志,发现居然读到的是jd9161的ID。为什么插上的otm8018b的LCD屏,读到的却是jd9161的ID。TimKing推测,一直认为是otm8018b屏,其实弄错了,它是jd9161!

  后来将读ID的代码改了,确是读到了jd9161的ID。没做兼容之前发现系统读不出otm8018b的ID,就有了解释了。之前一直要强制return 1,otm8018b(实际是jd9161屏)才能正常显示。之前的认为是otm8018b (jd9161(1))和现的jd9161(2)屏的ID是一样的,但是因为它们的玻璃不同,初始化代码也就不同,所以jd9161(1)和现的jd9161(2)屏只能够用一个进行兼容。后面将jd9161与rm68172、otm8018b_tn进行兼容,都是成功的,ID读取正常。

  这次是看了开机日志发现了屏幕型号不对,之前没有看日志,找不出为什屏老是读不出ID。会看日志是调试系统的一个重要技能,同时,还可以借助示波器,获取波形,然后和数据手册对照,看看时序是否吻合。此外,要根据现象进行推理,找出问题出处。能够调试好系统,还是需要加强功底。

你可能感兴趣的:(工作历程)