|
|
有一個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里面。導致程序失去了模塊化的意義,不方便檢查和調試。
圖片中為對應步驟的截圖
|
|