普中stm32开发板tftlcd显示图片_STM32实例TFTLCD介绍
????以前我們用 51 單片機控制 TFTLCD(TFT 液晶屏)時,使用的是 IO 口模擬80 接口時序。這次我們來學習如何使用 STM32F1 的 FSMC(靈活的靜態存儲控制器)接口控制 TFTLCD 顯示。TFTLCD 可以顯示 16 位色真彩圖片。本章要實現的功能是:在 TFTLCD 上顯示 ASCII 字符和漢字,同時 D1 指示燈閃爍,提示系統正常運行。學習本章可以參考《STM32F10x 中文參考手冊》-19 靈活的靜態存儲控制器(FSMC)章節,特別是寄存器介紹部分。
TFTLCD 簡介
????TFT-LCD 是薄膜晶體管液晶顯示器英文 thin film transistor-liquid
crystal display字頭的縮寫。TFT液晶為每個像素都設有一個薄膜晶體管 (TFT) ,每個像素都可以通過點脈沖直接控制,因而每個節點都相對獨立,并可以連續控制,不僅提高了顯示屏的反應速度,同時可以精確控制顯示色階,所以 TFT液晶的色彩更真,因此 TFT-LCD 也被叫做真彩液晶顯示器。
????常用的 TFT 液晶屏接口有很多種,8 位、 9 位、 16 位、 18 位都有,這
里的位數表示的是彩屏數據線的數量。常用的通信模式主要有 6800 模式和
8080模式,對于 TFT 彩屏通常都使用 8080 并口(簡稱 80 并口)模式。
????如果大家接觸過 LCD1602 或者 LCD12864 等,那么就會發現 8080 模式的讀寫時序其實跟 LCD1602 或者 LCD12864 的讀寫時序是差不多的。8080 接口有 5 條基本的控制線和多條數據線,數據線的數量主要看液晶屏使用的是幾位模式,有 8 根、 9 根、 16 根、18 根四種類型。它們的功能如下:
????接下來我們來看一下 8080 接口模式的時序,如下圖:
????從上圖我們就可以很清晰的看得出液晶屏的讀寫時序:
①:在 WR 跳變為低電平之后,液晶屏開始讀取總線上面的數據。如果使用
IO 口模擬寫入的時候,可以先在總線上面寫入數據,然后在跳變 WR,以保證當讀取的時候,總線上面的數據是穩定的。
②:在 RD 跳變為低電平之后,液晶屏放置數據到總線上面。
像以前我們使用 51單片機就是通過單片機的 IO 口模擬 8080時序進行TFT彩屏控制,但是對于我們 STM32F1 就不需要這樣模擬了,我們 STM32F1 自帶了FSMC接口,這個后面我們會介紹到。
????下面我們來介紹下 TFTLCD模塊,我們公司推出的 TFTLCD 模塊有很多種,按照屏幕大小的不同可分為 2.0、2.4、2.8、3.0、3.2、3.5、3.6、4.3、4.5、7寸等,不同尺寸的彩屏對應的分辨率可能不同,比如說 3.5 寸的彩屏分辨率為320*480(長*高),4.5 寸的為 480*854,當然這個具體要看對應彩屏的數據手冊,彩屏數據手冊在光盤的 “彩屏數據手冊” 。按照 TFT 彩屏驅動芯片的不同可分為海信HX83xx、ILI93xx、R615xx、LG45xx、NT355 等等,你手上的彩屏驅動芯片具體是哪一種,需要看下彩屏板表面左上角型號,通常我們都會將彩屏的驅動芯片型號放在TFTLCD模塊的左上角。我們的 TFTLCD 模塊都自帶觸摸功能, 可用來做輸入控制。
????本文我們就以 3.0 寸的 TFTLCD 模塊為例來介紹(其他尺寸的彩屏和驅動芯片使用方法類似),該模塊驅動芯片型號是 R61509V3,分辨率為 240*400,接口為 16位的 80 并口,自帶觸摸功能。該模塊的外觀圖如下圖所示:
????該模塊原理圖如下圖所示:
??? TFTLCD 模塊采用 2*17 的 2.54 公排針與外部連接,從圖 38.1.2 可以看出,此 TFTLCD 模塊采用 16 位的并口方式與外部連接,之所以不采用 8 位的方式,是因為彩屏的數據量比較大,尤其在顯示圖片的時候,如果用 8 位數據線,就會比 16 位方式慢一倍以上,我們當然希望速度越快越好,所以選擇 16 位的接口,當然不同 TFTLCD 數據位數不一樣,如果彩屏是 8 位的同樣也是接在 16位的對應高 8 位或者低 8位上,接口使用 16 位是方便兼容其他彩屏。上圖還列出了觸摸屏芯片的接口,關于觸摸屏本章我們不多介紹,在后面的章節會有詳細的介紹。該模塊的 80 并口有如下一些信號線:
CS:TFTLCD 片選信號。
WR:向 TFTLCD 寫入數據控制。
RD:從 TFTLCD 讀取數據控制。
RS:命令/數據選擇( 0,讀寫命令;1,讀寫數據)。
DB[15:0]:16 位雙向數據線。
RST:TFTLCD 復位。
??? 80并口的通信時序前面已經介紹,這里需要說明的是,TFTLCD模塊的 RST信號線是直接接到 STM32F1 的復位腳上,并不由軟件控制,這樣可以節省一個IO 口。所以要控制 TFTLCD 模塊顯示,總共需要 20 個 IO 口(除觸摸功能管腳)。
????知道了模塊的管腳功能及通信時序,接下來我們就來介紹下如何讓液晶模塊顯示。通常按照以下幾步即可實現 TFT 液晶顯示:
(1)設置 STM32F1 與 TFTLCD 模塊相連接的 IO要讓 TFTLCD 模塊顯示,首先得初始化 TFTLCD 模塊與 STM32F1 相連的 IO口, 以便控制TFTLCD。這里我們用使用的是 STM32F1的FSMC,FSMC 將在下面向大家詳細介紹。
(2)初始化 TFTLCD 模塊(寫入一系列設置值)
????初始化 IO 口,接著就是對 TFTLCD 進行配置,首先就是要復位下LCD,由于模塊的復位引腳是接在 STM32F1復位上的,所以直接按下開發板復位鍵即可,然后就是初始化序列,即向LCD控制器寫入一系列的設置值(比如RGB格式、LCD顯示方向、伽馬校準等),這部分代碼一般 LCD 廠商會提供,我們直接使用這些初始化序列即可,無需深入研究。關于這些設置值可以在你所使用的彩屏模塊驅動芯片數據手冊內查找到,只不過這些數據手冊全是英文的,其實也不是很難,我們用到的只是幾個設置值而已,不認識的可以百度翻譯下。初始化完成之后,LCD 就可以正常使用了。
(3)將要顯示的內容寫到 TFTLCD 模塊內
????這一步需要按照:設置坐標→寫 GRAM 指令→寫 GRAM 來實現,但是這個步驟,只是一個點的處理,如果我們想要顯示字符或數字,就必須要多次使用這個步驟,從而達到顯示字符或數字的目的,一般我們會設計一個函數來封裝這些過程(實現字符或數字的顯示),之后只需調用該函數,就可以實現字符或數字的顯示了。
????這一部分內容等到我們后面編寫程序的時候大家就可以看到, 其實還是比較簡單的。接下來我們就來揭開 STM32F1 的 FSMC 的神秘面紗。
總結
以上是生活随笔為你收集整理的普中stm32开发板tftlcd显示图片_STM32实例TFTLCD介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python sanic openapi
- 下一篇: python selenium 验证码识