一、參考資料
《STM32不完全手冊》第18章
《ILI9341數(shù)據手冊》
二、TFTLCD驅動原理
1、什么是TFTLCD
TFT-LCD 即薄膜晶體管液晶顯示器。其英文全稱為:Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源 TN-LCD、STN-LCD 的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設置有一個薄膜晶體管(TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關,
注釋:
1、它是一個顯示屏
2、每個像像素點上設置有一個薄膜晶體管(TFT)
3、就可以克服選通時的串擾,就是每一個像素點,都可以獨立控制
2、TFTLCD有什么優(yōu)勢
TFTLCD具有:亮度好、對比度高、層次感強、顏色鮮艷等特點。應用于電視、手機、電腦、平板等各種電子產品。
注釋:大家用的多!
3、細節(jié)補充
- 分辨率:240*320
- 驅動IC:ILI9341
- 自帶觸摸屏(電阻觸摸屏)
- 16位80并口驅動
- 16位真彩顯示(65536色)
注釋:
1、分辨率
2、驅動IC
3、電阻觸摸屏
4、16位80并口驅動
8080介紹:http://www.360doc.com/content/13/1106/16/14528632_327181927.shtml
4、原理圖
名稱 | 對應引腳 |
---|---|
D[15:0]:16 位雙向數(shù)據線 | PB[15:0] |
CS(LCD片選信號) | PC9 |
RS(數(shù)據-1/命令-0,標志) | PC8 |
WR(LCD寫信號) | PC7 |
RD(LCD讀信號) | PC6 |
BL (背光控制信號) | PC10 |
觸摸屏接口信號:
名稱 | 對應引腳 |
---|---|
T MOSI | PC3 |
T MISO | PC2 |
T SCK | PC0 |
T CS | PC13 |
5、16位80并口
看到80并口,
1、知道有4根線和一組IO口
2、知道時序圖,會讀時序圖
四根線+一組IO口
- CS:片選信號
- WR:寫信號
- RD:讀信號
- RS:命令-0,數(shù)據-1 標志位
- DB[17:1]
時序圖:
寫數(shù)據: - CS拉低,RD拉高,RS-0寫命令,RS-1寫數(shù)據,在WR上升沿作用
讀數(shù)據:
- CS拉低,WD拉高,RS-0讀命令,RS-1讀數(shù)據,在RD上升沿作用
6、ILI9341 時序
ILI9341所用到的數(shù)據協(xié)議就是80并口,協(xié)議可以理解為語言的語法,是一種規(guī)則的存在,我們表達的過程當中使用到語法,但是具體的傳輸內容,交流內容是什么,可以根據具體的語境、需求決定,但是就是需要遵守規(guī)則,這里ILI9341使用的就是80并口協(xié)議這種傳輸數(shù)據的規(guī)則。
圖片上的數(shù)據時ILI9341讀寫數(shù)據時的最小時間,單位是ns
7、TFTLCD 驅動流程
GRAM:graphics RAM,即圖像寄存器,在驅動TFT——LCD顯示的芯片ILI9341中,存儲要顯示的圖像信息。
8、RGB565格式說明
1、知道一個像素點占兩個字節(jié)
2、知道每位存儲的是什么
9、ILI9341指令格式說明
特別注意 ILI9341 所有的指令都是 8 位的(高 8 位無效),且參數(shù)除了讀寫 GRAM 的時候是 16 位,其他操作參數(shù),都是 8 位的,
這里介紹幾個重要指令
(1)0XD3指令
只有讀出讀出ID,才能根據不同的ID進行初始化。
(2)0X36指令
0X36指令: 控制GRAM 指針自增。
0X36指令,這是存儲訪問控制指令,可以控制 ILI9341 存儲器的讀寫方向,簡
單的說,就是在連續(xù)寫 GRAM 的時候,可以控制 GRAM 指針的增長方向,從而控制顯示方式,連讀讀GRAM也是一樣。
(3)0X2A指令
設置X軸坐標。
(4)X2B指令
設置Y軸坐標。
X2B指令和X2A指令可以結合起來窗。
(5)X2C指令
X2C指令:寫GRAM的顯存。
(6)0X2E指令
X2E指令:讀取GRAM的顯存。
三、基本代碼
1、硬件連接
2、lcddev結構體
3、7個底層接口函數(shù)
(1)寫寄存器值函數(shù)
(2)寫數(shù)據函數(shù)
注釋:這個地方代碼有點看不懂,只能理解其作用
關于拿時間換空間,這里是說常規(guī)定義的函數(shù)執(zhí)行過程,需要不斷的定義變量,然后又釋放變量,最終是相當于沒有占有存儲空間的,但是不斷的新建變量的工程需要不斷的查詢足夠的空間地址,是需要花費時間的,而使用宏定義函數(shù),一開始那些變量需要用到的空間就是申請好的,而且在這個的程序執(zhí)行過程當中都是固定存在的,不需要每一次都靠開辟新的空間,而且地址也是知道的,就是所謂的利用空間換時間。
上面這個是和同學討論的結果,沒有非常的書面化表達,但是可以簡單的理解,感謝!
(3)讀數(shù)據函數(shù)
(4)寫寄存器內容函數(shù)
(5)讀寄存器內容函數(shù)
(6)開始寫GRM函數(shù)
(7)寫GRAM函數(shù)
注釋: 關于宏定義的引用是按步驟執(zhí)行,使用這里就是利用空間換時間的原則調用的函數(shù)
四、功能代碼
1、初始化函數(shù)
(1)GPIO初始化
不要覺得復雜,我們可以先理解,拆分,然后內化,最后你也是可以寫出來的哦,不放過,是對代碼對起碼的尊重。
這里用到了復用功能所以復用時鐘需要初始化
PB3-JTCO
PA14-JTCI
這兩個引腳的一般功能就是作為JTAG引腳,所以要將題目當做朋友IO口使用時,首先需要開啟復用時鐘,還有將JTAG功能關閉!
(2)讀取驅動ID
(3)驅動代碼
(5)基本配置函數(shù)
2、LCD坐標設置函數(shù)
3、LCD畫點函數(shù)
4、LCD讀點函數(shù)
5、LCD顯示字符函數(shù)
文章來源:http://www.zghlxwxcb.cn/news/detail-405583.html
五、應用起來
文章來源地址http://www.zghlxwxcb.cn/news/detail-405583.html
到了這里,關于STM32學習記錄0010——TFTLCD液晶顯示屏的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!