|
一、用STM32控制TFTLCD顯示的編程方法,在編程驅(qū)動TFTLCD液晶顯示器之前,我們先熟悉以下概念:
1、色彩深度,這是一個與TFTLCD顯存對應(yīng)的概念;所謂色彩深度就是每個像素點(diǎn)需要多少位的RGB
數(shù)據(jù)表示該點(diǎn)的顏色信息。注意,不同的TFTLCD顯示器的RGB的對應(yīng)關(guān)系不一樣,這個可以在LCD
控制芯片手冊中找到答案。
例: 某LCD顯示支持8、16、24位RGB,這些位數(shù)是指該像素點(diǎn)顏色由8、16、24位RGB構(gòu)成,但是
R\G\B三種顏色各占的位數(shù)可以查看數(shù)據(jù)手冊。
2、TFTLCD的操作分為兩種:
A、對控制寄存器的讀寫操作(即程序員將要操作LCD顯存寄存器的地址設(shè)置成可讀或者可寫)。
B、對顯存寄存器的讀寫操作(即讀寫LCD顯存寄存器)。
3、TFTLCD有一個索引寄存器,對控制寄存器操作前,需要對索引寄存器進(jìn)行定入操作,用以指明
寄存器讀寫是針對那個寄存器的,具體操作步驟如下:
RS為低電平狀態(tài)下,寫入兩個字節(jié)的數(shù)據(jù),第一個字節(jié)為零,第二個字節(jié)為寄存器索引值。
RS為高電平狀態(tài)下,讀取兩個字節(jié)數(shù)據(jù),第一個字節(jié)為高八位,第二個字節(jié)為低八位。
0.png (53.15 KB, 下載次數(shù): 26)
下載附件
2019-1-10 02:09 上傳
程序功能介紹:上電后屏幕顯示40*40小圖片若干和一些字符。按S4按鍵會顯示純色,每按一次顏色變一次,紅綠藍(lán)交替顯示.
單片機(jī)源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart.h"
- #include "24cxx.h"
- #include "flash.h"
- #include "flash.h"
- #include "spi.h"
- u8 state=0;
- void beepms(u16 va);
- void xianshi(void);//顯示信息
- void refshow(void);//刷新顯示
- void Load_Drow_Dialog(void)
- {
- LCD_Clear(WHITE);//清屏
- POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- LCD_ShowString(lcddev.width-24,0,200,16,16,"RST");//顯示清屏區(qū)域
- POINT_COLOR=RED;//設(shè)置畫筆藍(lán)色
- }
- void xianshi()//顯示信息
- {
- BACK_COLOR=WHITE;
- POINT_COLOR=RED;
- //顯示32*32漢字
- showhanzi32(0,0,0); //淘
- showhanzi32(40,0,1); //晶
- showhanzi32(80,0,2); //馳
- //顯示16*16漢字
- showhanzi16(0,35,0); //專
- showhanzi16(20,35,1); //注
- showhanzi16(40,35,2); //顯
- showhanzi16(60,35,3); //示
- showhanzi16(80,35,4); //方
- showhanzi16(100,35,5); //案
- LCD_ShowString(0,55,200,16,16,"2.2 TFT SPI 240*320");
- }
- void showqq()
- {
- u16 x,y;
- x=0;
- y=75;
- while(y<lcddev.height-39)
- {
- x=0;
- while(x<lcddev.width-39)
- {
- showimage(x,y);
- x+=40;
- }
- y+=40;
- }
- }
- void refshow(void) //刷新顯示
- {
- switch(state)
- {
- case 0:
- LCD_Clear(WHITE);
- xianshi();
- showqq();
- break;
- case 1:
- LCD_Clear(BLACK);
- break;
- case 2:
- LCD_Clear(RED);
- break;
- case 3:
- LCD_Clear(GREEN);
- break;
- case 4:
- LCD_Clear(BLUE);
- break;
- }
- }
- void jiance(u8 key) //檢測按鍵
- {
- if(key==2)
- {
- state++;
- if(state==5)
- {
- state=0;
- }
- refshow();//刷新顯示
- }
- }
- void beepms(u16 va)
- {
- beep=1;
- delay_ms(va);
- beep=0;
- }
- int main(void)
- {
- u16 i=0;
- u8 key=0;
- delay_init(); //延時函數(shù)初始化
- NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
- uart_init(9600); //串口初始化為9600
- LED_Init(); //LED端口初始化
- SPI_Flash_Init();//初始化Flash;
- KEY_Init(); //按鍵初始化
-
- SPI1_Init(); //SPI1初始化
- LCD_Init();
- POINT_COLOR=RED;//設(shè)置字體為紅色
- xianshi(); //顯示信息
- showqq(); //顯示QQ
- while(1)
- {
- key=KEY_Scan(0);//掃描按鍵
- jiance(key);//檢測按鍵
- i++;
- if(i==65000)
- {
- i=0;
- LED0=!LED0;
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
3寸觸摸屏.7z
(4.04 MB, 下載次數(shù): 99)
2019-1-10 02:11 上傳
點(diǎn)擊文件名下載附件
Stm32程序 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|