|
有一个LCD1602显示的问题,困扰了好几天,检查过时序,检查过延时,也检查过IAR配置,都没有问题。
一直找不到解决办法,不知有谁遇到过类似的现象没?
如果有,麻烦指点一下迷津,谢谢。
具体问题如下:
1)将LCD1602 写指令/写数据以一个子函数单独写进一个名为LCD1602.c的文件里;
2)在工程文件里将其加入到Sub_funtion子目录下:
3)在LCD1602.c中创建一个LCD1602_DIS_CHAR()的子函数;
4)在主函数中直接调用LCD1602_DIS_CHAR(),比如在LCD1602的第一行第一列显示字符'M',第二行第二列显示字符'X',
实际显示结果如下:
5)同样的配置,在LCD1602.c中新建一个名为show_X_M()的子函数,再在主函数中直接调用show_X_M()函数,则显示正常
这意味着,所有用LCD1602显示的指令(字符,数据等)必须写到LCD1602.c的子函数里面,再在主函数中调用该子函数才能保证LCD1602显示正常。
但如果用LCD1602显示IIC或者SPI等传递的数据,意味着这些协议也得写进LCD1602.c里面。导致程序失去了模块化的意义,不方便检查和调试。
图片中为对应步骤的截图
|
|