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