cortex_m3_stm32嵌入式學習筆記(十一):TFTLCD顯示(初涉顯示器)

ARM 599瀏覽

本章我們將介紹 ALIENTEK 2.8 寸 TFT LCD 模塊,該模塊采用 TFTLCD 面板,可以顯示 16 位色的真彩圖片。


TFT-LCD 即薄膜晶體管液晶顯示器。其英文全稱為: Thin Film Transistor-Liquid CrystalDisplay。 TFT-LCD 與無源 TN-LCD、 STN-LCD 的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設置有一個薄膜晶體管( TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態特性與掃描線數無關,因此大大提高了圖像質量。 TFT-LCD 也被叫做真彩液晶顯示器

特點:
1, 2.4’ /2.8’ /3.5’ /4.3’ /7’ 5 種大小的屏幕可選。
2, 320× 240 的分辨率( 3.5’ 分辨率為:320*480, 4.3’ 和 7’ 分辨率為: 800*480)。
3, 16 位真彩顯示。
4,自帶觸摸屏,可以用來作為控制輸入。

(我買的是2.8的屏)
。。接下來就是學習lcd庫了,我個人感覺我們應該把它當成一個庫來學。。(看了一下光lcd.c文件就3000多行每次我們都自己寫不得累死。。)要掌握里面的各種函數的用法,恩。。不是一朝一夕的事,今天就先貼一下lcd.h 主要是一堆庫函數的聲明

#ifndef __LCD_H #define __LCD_H		 #include "sys.h"	  #include "stdlib.h" //LCD重要參數集 typedef struct   {										     	u16 width;			//LCD 寬度 	u16 height;			//LCD 高度 	u16 id;				//LCD ID 	u8  dir;			//橫屏還是豎屏控制:0,豎屏;1,橫屏。	 	u16	wramcmd;		//開始寫gram指令 	u16 setxcmd;		//設置x坐標指令 	u16  setycmd;		//設置y坐標指令	  }_lcd_dev; 	    //LCD參數 extern _lcd_dev lcddev;	//管理LCD重要參數 //LCD的畫筆顏色和背景色	    extern u16  POINT_COLOR;//默認紅色     extern u16  BACK_COLOR; //背景顏色.默認為白色  //////////////////////////////////////////////////////////////////// //-----------------LCD端口定義----------------  #define	LCD_LED PCout(10) 				//LCD背光    	PC10   /* #define	LCD_CS_SET  GPIOC->BSRR=1<<9    //片選端口  		PC9 #define	LCD_RS_SET	GPIOC->BSRR=1<<8    //數據/命令 		PC8	    #define	LCD_WR_SET	GPIOC->BSRR=1<<7    //寫數據			PC7 #define	LCD_RD_SET	GPIOC->BSRR=1<<6    //讀數據			PC6 								     #define	LCD_CS_CLR  GPIOC->BRR=1<<9     //片選端口  		PC9 #define	LCD_RS_CLR	GPIOC->BRR=1<<8     //數據/命令		PC8	    #define	LCD_WR_CLR	GPIOC->BRR=1<<7     //寫數據			PC7 #define	LCD_RD_CLR	GPIOC->BRR=1<<6     //讀數據			PC6   */  #define	LCD_CS_SET  GPIO_SetBits(GPIOC,GPIO_Pin_9)    //片選端口  		PC9 #define	LCD_RS_SET	GPIO_SetBits(GPIOC,GPIO_Pin_8)    //數據/命令 		PC8	    #define	LCD_WR_SET	GPIO_SetBits(GPIOC,GPIO_Pin_7)   //寫數據			PC7 #define	LCD_RD_SET	GPIO_SetBits(GPIOC,GPIO_Pin_6)   //讀數據			PC6 								     #define	LCD_CS_CLR  GPIO_ResetBits(GPIOC,GPIO_Pin_9)    //片選端口  		PC9 #define	LCD_RS_CLR	GPIO_ResetBits(GPIOC,GPIO_Pin_8)     //數據/命令		PC8	    #define	LCD_WR_CLR	GPIO_ResetBits(GPIOC,GPIO_Pin_7)     //寫數據			PC7 #define	LCD_RD_CLR	GPIO_ResetBits(GPIOC,GPIO_Pin_6)    //讀數據			PC6      //PB0~15,作為數據線 //#define DATAOUT(x) GPIOB->ODR=x; //數據輸出 //#define DATAIN     GPIOB->IDR;   //數據輸入	  #define DATAOUT(x) GPIO_Write(GPIOB,x); #define DATAIN   GPIO_ReadInputData(GPIOB)   ////////////////////////////////////////////////////////////////////// //掃描方向定義 #define L2R_U2D  0 //從左到右,從上到下 #define L2R_D2U  1 //從左到右,從下到上 #define R2L_U2D  2 //從右到左,從上到下 #define R2L_D2U  3 //從右到左,從下到上  #define U2D_L2R  4 //從上到下,從左到右 #define U2D_R2L  5 //從上到下,從右到左 #define D2U_L2R  6 //從下到上,從左到右 #define D2U_R2L  7 //從下到上,從右到左  #define DFT_SCAN_DIR  L2R_U2D  //默認的掃描方向 	  //掃描方向定義 #define L2R_U2D  0 //從左到右,從上到下 #define L2R_D2U  1 //從左到右,從下到上 #define R2L_U2D  2 //從右到左,從上到下 #define R2L_D2U  3 //從右到左,從下到上  #define U2D_L2R  4 //從上到下,從左到右 #define U2D_R2L  5 //從上到下,從右到左 #define D2U_L2R  6 //從下到上,從左到右 #define D2U_R2L  7 //從下到上,從右到左	   #define DFT_SCAN_DIR  L2R_U2D  //默認的掃描方向  //畫筆顏色 #define WHITE         	 0xFFFF #define BLACK         	 0x0000	   #define BLUE         	 0x001F   #define BRED             0XF81F #define GRED 			 0XFFE0 #define GBLUE			 0X07FF #define RED           	 0xF800 #define MAGENTA       	 0xF81F #define GREEN         	 0x07E0 #define CYAN          	 0x7FFF #define YELLOW        	 0xFFE0 #define BROWN 			 0XBC40 //棕色 #define BRRED 			 0XFC07 //棕紅色 #define GRAY  			 0X8430 //灰色 //GUI顏色  #define DARKBLUE      	 0X01CF	//深藍色 #define LIGHTBLUE      	 0X7D7C	//淺藍色   #define GRAYBLUE       	 0X5458 //灰藍色 //以上三色為PANEL的顏色    #define LIGHTGREEN     	 0X841F //淺綠色  #define LGRAY 			 0XC618 //淺灰色(PANNEL),窗體背景色  #define LGRAYBLUE        0XA651 //淺灰藍色(中間層顏色) #define LBBLUE           0X2B12 //淺棕藍色(選擇條目的反色) 	    															   void LCD_Init(void);													   	//初始化 void LCD_DisplayOn(void);													//開顯示 void LCD_DisplayOff(void);													//關顯示 void LCD_Clear(u16 Color);	 												//清屏 void LCD_SetCursor(u16 Xpos, u16 Ypos);										//設置光標 void LCD_DrawPoint(u16 x,u16 y);											//畫點 void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color);								//快速畫點 u16  LCD_ReadPoint(u16 x,u16 y); 											//讀點  void LCD_Draw_Circle(u16 x0,u16 y0,u8 r);					    			//畫圓 void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2);							//畫線 void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);		   				//畫矩形 void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color);		   				//填充單色 void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color);				//填充指定顏色 void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode);						//顯示一個字符 void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size);  						//顯示一個數字 void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode);				//顯示 數字 void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p);		//顯示一個字符串,12/16字體  void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue); u16 LCD_ReadReg(u16 LCD_Reg); void LCD_WriteRAM_Prepare(void); void LCD_WriteRAM(u16 RGB_Code);		   void LCD_Scan_Dir(u8 dir);									//設置屏掃描方向 void LCD_Display_Dir(u8 dir);								//設置屏幕顯示方向 void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height);	//設置窗口	  //寫數據函數 #define LCD_WR_DATA(data){ LCD_RS_SET; LCD_CS_CLR; DATAOUT(data); LCD_WR_CLR; LCD_WR_SET; LCD_CS_SET; }   					   																			  //9320/9325 LCD寄存器   #define R0             0x00 #define R1             0x01 #define R2             0x02 #define R3             0x03 #define R4             0x04 #define R5             0x05 #define R6             0x06 #define R7             0x07 #define R8             0x08 #define R9             0x09 #define R10            0x0A #define R12            0x0C #define R13            0x0D #define R14            0x0E #define R15            0x0F #define R16            0x10 #define R17            0x11 #define R18            0x12 #define R19            0x13 #define R20            0x14 #define R21            0x15 #define R22            0x16 #define R23            0x17 #define R24            0x18 #define R25            0x19 #define R26            0x1A #define R27            0x1B #define R28            0x1C #define R29            0x1D #define R30            0x1E #define R31            0x1F #define R32            0x20 #define R33            0x21 #define R34            0x22 #define R36            0x24 #define R37            0x25 #define R40            0x28 #define R41            0x29 #define R43            0x2B #define R45            0x2D #define R48            0x30 #define R49            0x31 #define R50            0x32 #define R51            0x33 #define R52            0x34 #define R53            0x35 #define R54            0x36 #define R55            0x37 #define R56            0x38 #define R57            0x39 #define R59            0x3B #define R60            0x3C #define R61            0x3D #define R62            0x3E #define R63            0x3F #define R64            0x40 #define R65            0x41 #define R66            0x42 #define R67            0x43 #define R68            0x44 #define R69            0x45 #define R70            0x46 #define R71            0x47 #define R72            0x48 #define R73            0x49 #define R74            0x4A #define R75            0x4B #define R76            0x4C #define R77            0x4D #define R78            0x4E #define R79            0x4F #define R80            0x50 #define R81            0x51 #define R82            0x52 #define R83            0x53 #define R96            0x60 #define R97            0x61 #define R106           0x6A #define R118           0x76 #define R128           0x80 #define R129           0x81 #define R130           0x82 #define R131           0x83 #define R132           0x84 #define R133           0x85 #define R134           0x86 #define R135           0x87 #define R136           0x88 #define R137           0x89 #define R139           0x8B #define R140           0x8C #define R141           0x8D #define R143           0x8F #define R144           0x90 #define R145           0x91 #define R146           0x92 #define R147           0x93 #define R148           0x94 #define R149           0x95 #define R150           0x96 #define R151           0x97 #define R152           0x98 #define R153           0x99 #define R154           0x9A #define R157           0x9D #define R192           0xC0 #define R193           0xC1 #define R229           0xE5							  		  #endif

后面我會一點點的總結有關tftlcd顯示的實用庫函數。。


七星彩走势图2元网官网