|
以下內(nèi)容為《STM32F1開發(fā)指南--庫函數(shù)版》,僅為個人學(xué)習(xí)方便所整理
1.0XD3:讀 ID指令,
用于讀取LCD控制器的ID,該指令如表1所示,可以看出0XD3指令后面跟了4個參數(shù),最后2個參數(shù)讀出來是 0X93和0 X41,剛好是控制器ILI9341的數(shù)字部分,通過該指令即可判別所用的LCD驅(qū)動器是什么型號,這樣就可以根據(jù)控制器的型號去執(zhí)行對應(yīng)驅(qū)動IC的初始化代碼,從而兼容不同驅(qū)動 IC 的屏,使得一個代碼支持多款 LCD。 2.0X36:存儲訪問控制指令 可以控制ILI9341存儲器的讀寫方向,就是在連續(xù)寫GRAM的時候,可以控制GRAM指針的增長方向,從而控制顯示方式(讀GRAM也是一樣),該指令如表2所示:
從上表可以看出0X36指令后面緊跟一個參數(shù),這里主要關(guān)注MY、MX、 MV這三個位,通過這三個位的設(shè)置可以控制整個ILI9341的全部掃描方向,如表3所示:
3.0X2A:列地址設(shè)置指令 指令如表4 所示,在從左到右,從上到下的掃描方式(默認(rèn))下,用于設(shè)置橫坐標(biāo)(x坐標(biāo)),帶有4個參數(shù),實際上是2個坐標(biāo)值:SC和EC,即列地址的起始值和結(jié)束值,SC必須小于等于EC,且 0≤SC/EC≤239。一般在設(shè)置x坐標(biāo)的時候,只需要帶2個參數(shù)即可,也就是設(shè)置 SC即可,因為如果EC沒有變化,只需要設(shè)置一次即可(在初始化ILI9341的時候設(shè)置),從而提高速度。
4.0X2B:頁地址設(shè)置指令 指令如表5所示,在從左到右,從上到下的掃描方式(默認(rèn))下,用于設(shè)置縱坐標(biāo)(y坐標(biāo)),帶有4個參數(shù),實際上是2個坐標(biāo)值:SP和EP,即頁地址的起始值和結(jié)束值,SP必須小于等于EP,且 0≤SP/EP≤319。一般在設(shè)置y坐標(biāo)的時候,只需要帶2個參數(shù)即可,也就是設(shè)置 SP即可,因為如果EP沒有變化,只需要設(shè)置一次即可(在初始化ILI9341的時候設(shè)置),從而提高速度。
5.0X2C:寫GRAM 指令 在發(fā)送該指令之后,便可以往LCD的GRAM 里面寫入色數(shù)據(jù)了,該指令支持連續(xù)寫,指令描述如表6所示:
從上表可知,在收到指令0X2C之后,數(shù)據(jù)有效位寬變?yōu)?6位,可以連續(xù)寫入LCDGRAM值,而GRAM的地址將根據(jù)MY/MX/MV設(shè)置的掃描方向進(jìn)行自增。例如:假設(shè)設(shè)置的是從左到右,從上到下的掃描方式,那么設(shè)置好起始坐標(biāo)(通過SC,SP設(shè)置)后,每寫入一個顏色值,GRAM地址將會自動自增1(SC++),如果碰到EC,則回到SC,同時SP++,一直到坐標(biāo):EC,EP結(jié)束,其間無需再次設(shè)置的坐標(biāo),從而大大提高寫入速度。
6.0X2E:讀 GRAM 指令 用于讀取ILI9341的顯存(GRAM),輸出情況如表7所示:ILI9341在收到該指令后,第一次輸出的是dummy數(shù)據(jù),也就是無效的數(shù)據(jù),第二次開始,讀取到的才是有效的 GRAM數(shù)據(jù)(從坐標(biāo):SC,SP 開始),輸出規(guī)律為:每個顏色分量占8個位,一次輸出2個顏色分量。比如:第一次輸出是R1G1,隨后的規(guī)律為:B1R2àG2B2àR3G3àB3R4àG4B4à R5G5... 以此類推。如果只需要讀取一個點的顏色值,那么只需要接收到參數(shù)3即可,如果要連續(xù)讀。ɡ肎RAM地址自增,方法同上),那么就按照上述規(guī)律去接收顏色數(shù)據(jù)。
以上就是操作ILI9341常用的幾個指令,通過這幾個指令便可以很好的控制 ILI9341顯示需要的內(nèi)容了。
|
|