|
有一個LCD1602顯示的問題,困擾了好幾天,檢查過時序,檢查過延時,也檢查過IAR配置,都沒有問題。
一直找不到解決辦法,不知有誰遇到過類似的現(xiàn)象沒?
如果有,麻煩指點一下迷津,謝謝。
具體問題如下:
1)將LCD1602 寫指令/寫數(shù)據(jù)以一個子函數(shù)單獨寫進一個名為LCD1602.c的文件里;
2)在工程文件里將其加入到Sub_funtion子目錄下:
3)在LCD1602.c中創(chuàng)建一個LCD1602_DIS_CHAR()的子函數(shù);
4)在主函數(shù)中直接調(diào)用LCD1602_DIS_CHAR(),比如在LCD1602的第一行第一列顯示字符'M',第二行第二列顯示字符'X',
實際顯示結(jié)果如下:
5)同樣的配置,在LCD1602.c中新建一個名為show_X_M()的子函數(shù),再在主函數(shù)中直接調(diào)用show_X_M()函數(shù),則顯示正常
這意味著,所有用LCD1602顯示的指令(字符,數(shù)據(jù)等)必須寫到LCD1602.c的子函數(shù)里面,再在主函數(shù)中調(diào)用該子函數(shù)才能保證LCD1602顯示正常。
但如果用LCD1602顯示IIC或者SPI等傳遞的數(shù)據(jù),意味著這些協(xié)議也得寫進LCD1602.c里面。導(dǎo)致程序失去了模塊化的意義,不方便檢查和調(diào)試。
圖片中為對應(yīng)步驟的截圖
|
|