日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

HAL库+stm32cubeIDE+4.3寸LCD显示器驱动移植

發布時間:2024/1/1 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HAL库+stm32cubeIDE+4.3寸LCD显示器驱动移植 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HAL庫+stm32cubeIDE+4.3寸LCD顯示器

開發板:野火霸天虎V2

IDE:stm32CUBEIDE

燒錄工具:openOCD

顯示器基本參數

  • 像素
  • 分辨率:
  • 色彩深度:灰度值分布
  • 顯示器尺寸
  • 點距

所使用液晶控制器

帶了液晶控制器芯片

所以刷新率會慢一點(沒有DMA)

液晶面板控制信號

信號名稱說明
R[7:0]紅色數據
G[7:0]綠色數據
B[7:0]藍色數據
CLK像素同步時鐘信號
HSYNC水平同步信號
VSYNC垂直同步信號
DE數據使能信號
  • RGB信號線
    • 代表了RGB的數據
  • CLK
    • 像素同步信號,每個時鐘需要刷新
  • HSYNC
    • 屏幕刷新,按行刷;一行刷新的結尾
  • VSYNC
    • 一幀圖像的結尾標志

液晶時序控制

HBP:表示從水平同步信號開始到一行的有效數據開始之間的 CLK 的個數

HFP:表示一行的有效數據結束到下一個水平同步信號開始之間的 CLK 的個數

VBP :表示在一幀圖像開始時,垂直同步信號以后的無效的行數

VFP:表示在一幀圖像結束后,垂直同步信號以前的無效的行數

VSW :表示垂直同步信號的寬度,單位為行

HSW:表示水平同步信號的寬度,單位為同步時鐘CLK的個數

在這些時間參數控制的區域,數據使能信號線“DE”都為低電平,RGB 數據線的信號無效,當“DE”為高電平時,表示的數據有效,傳輸的數據會直接影響液晶屏的顯示區域。

觸摸屏

觸摸面板引出的信號線引入到GT917S 芯片,該芯片會對觸摸信號進行采集并簡化信號輸出給外部控制器。

觸摸面板的下方就是液晶面板,該液晶控制器使用的是8080接口

液晶屏的信號線及 8080 時序

NT35510 控制器根據自身的 IM[3:0] 信號線電平決定它與MCU 的通訊方式,它本身支持 SPI 及 8080 通訊方式

由圖可知,寫命令時序由片選信號 CSX 拉低開始,對數據/命令選擇信號線 D/CX 也置低電平表示寫入的是命令地址 (可理解為命令編碼,如軟件復位命令:0x01),以寫信號WRX為低,讀信號 RDX 為高表示數據傳輸方向為寫入,同時,在數據線 D[23:0](或 D[15:0]) 輸出命令地址,在 第二個傳輸階段傳送的是命令的參數,所以 D/CX 要置高電平,表示寫入的是命令數據,命令數 據是某些指令帶有的參數,如復位指令編碼為 0x01,它后面可以帶一個參數,該參數表示多少 秒后復位 (實際的復位命令不含參數,此處只是為了講解指令編碼與參數的區別)。 當需要把像素數據寫入GRAM時,過程很類似,把片選信號CSX拉低后,再把數據/命令選擇信 號線 D/CX 置為高電平,這時由 D[23:0] 傳輸的數據則會被 NT35510 保存至它的GRAM中。

stm32-FSMC解讀

注意看下FSMC的框圖,發下NOR和SRAM放一起,說明程序里這倆變量其實是結構是一樣的(為啥單獨拎出來講一下,因為野火給的HAL庫代碼有點坑,首先是變量的定義和生成的有出入-都能用,就是無法理解,其次是忘了開寫使能)

地址映射

野火所使用的LCD的MCU借口是NOR Falsh,所以要選用存儲區域1,我們按照教程選了第3區域

第一個存儲區域的地址

解釋:存儲器要是8位的話,最大支持的外設地址為0~2^26-1個地址,也就是64MB的地址,所以容量就是512Mb

如果是16位的話,最高位不用,也還是支持512Mb(至于原因,存儲器是按照字節,也就是8位來尋址的,16位是要讀兩次)

信號建立時間

信號時序

只針對8080時序

僅僅是FSMC的地址信號線 A[25:0] 與 8080 的數據/命令選擇線 D/CX 有區別。而對于 D/CX 線,它為高電平的時候表示數值,為低電 平的時候表示命令,如果能使用 FSMC 的 A 地址線根據不同的情況產生對應的電平,那么就完 全可以使用 FSMC來產生 8080 接口需要的時序了

由于 FSMC會自動產生地址信號,當使用 FSMC向 0x6xxx xxx1、0x6xxx xxx3、0x6xxx xxx5?這 些奇數地址寫入數據時,地址最低位的值均為1,所以它會控制地址線A0(D/CX)輸出高電平,那 么這時通過數據線傳輸的信號會被理解為數值;若向 0x6xxx xxx0 、0x6xxx xxx2、0x6xxx xxx4? 這些偶數地址寫入數據時,地址最低位的值均為 0,所以它會控制地址線 A0(D/CX) 輸出低電平, 因此這時通過數據線傳輸的信號會被理解為命令,見表 27?6。

對應代碼的話,就是要有一個寫指令命令和讀指令命令。當然,前提是我們要設置A[25:0]只有一位生效,原因,這樣,才會符合D/CX的高低電平

代碼移植

使用野火配套的代碼就把它的GPIO口(會使用到軟件復位)和FSMC口配置一下

解釋:NE3-bank3,類型NOR Flas,地址只要1位,數據位16位,我們是異步傳輸,不需要用到時鐘或者總線

開啟寫方向使能,不需要進行擴展模式使用(就是寫入和讀取用同一個)

接下來生成代碼

在液晶顯示的驅動包里,把GPIO_Config和FSMC_Config注釋掉,就可以用了


接下來生成代碼

在液晶顯示的驅動包里,把GPIO_Config和FSMC_Config注釋掉,就可以用了里面定義的倆全局變量也注釋掉

總結

以上是生活随笔為你收集整理的HAL库+stm32cubeIDE+4.3寸LCD显示器驱动移植的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。