前言
最近接到一个任务:
温度按键设定、显示、报警系统设计
基本要求 :设计一LCD显示系统,实现以下功能:
读取DS18B20温度,在液晶上实时显示,并显示上、下限,初始值上限32,下限26。
通过按键可以设置环境温度的上限和下限,
LCD显示器中间显示年月日时,下方显示温度。
当温度超过上限,温度隔1秒跳一次,温度为红色显示。超过下限,温度隔1秒亮一次,为黄色显示。(也可增加蜂鸣器报警方式)
显然这个题目需要用到LCD,所以我利用FSMC来进行LCD显示。
遇到的问题
屏幕白屏,下载另一个代码屏幕变成了花屏(这里就不放图片了,语言描述得比较清楚)。
解决措施
首先我去检查了一下硬件,果然果然连错了,有两根线连反了,好了结束,问题解决,我以为问题到这已经解决,可是造化弄人,我满怀期待的下载代码,之后白屏现象仍在。
好消息是硬件连线没有问题了,坏消息是不知道该从哪里下手往下找问题。
由于所有的硬件是我自己打板焊接的,所有我现检查有没有虚焊,查了一圈,用烙铁重新拖了一遍,发现问题仍旧没有解决。然后我用串口读取了一下LCD 屏幕的ID结果发现,读取的ID为0xffff,这我就没辙了呀,ID都读错了。于是我上网上寻求帮助,得到的第一个有可行性的答复是电源不稳定,于是在我的电源处加了两个滤波电容,但是没用;得到的第二个有可行性的答复是boot1角需要下拉要接一个下拉电阻,于是我加了一个10K的下拉电阻,发现还是没用;得到的第三个有可行性的答复为下载新的LCD驱动代码(正点原子),我发现我现在用的就是新的HAL库的驱动代码,然后我突发奇想,我换成旧的库函数代码会怎样。最后下载完程序成功点亮了哦不点红了(原来就是白屏啊喂)LCD屏幕,因为我用的屏幕是ST7789驱动有的代码中是没有写这部分驱动的所以需要更换代码,自己修改驱动代码也是可以的。
总结:
检查硬件连线与焊接
读取LCD的ID是否正常
电源附近加滤波电容
boot1加下拉电阻
换成或修改成支持屏幕驱动的代码