⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcddrive.h

📁 这是ARM嵌入式系统的实验教程中的MINIGUI的实验源代码!
💻 H
字号:
/****************************************************************************************
* 文件名:LCDDRIVE.H
* 功能:TFT4267液晶模块驱动。(头文件)
*       驱动芯片为S6D0129 (片内172800字节GRAM,即240*320*18/8),
*
*    液晶模块的管脚连接设置如下:
*    IM3、IM0  ----------  GND   (使用16位8080系统接口)
*    DB0       ----------  GND
*    DB1-DB8   ----------  D0-D7 
*    DB9       ----------  GND
*    DB10-DB17 ----------  D8-D15
*    CS        ----------  LCM_nCS0  (使用Bank3)
*    RS        ----------  A1
*    WR        ----------  nWE
*    RD        ----------  nRE
*    RESET     ----------  P0.22
*
*    VDD       ----------  3.0V
*    LED_An    ----------  5V(串接限流电阻)
*    
*  操作说明(写IR + CR/WDR [ + WDR...] ):
*  R/W            RS             操作
*  0              0              写IR(索引,即选择CR)
*  1              0              读芯片状态
*  0              1              写命令(CR)/数据(WDR)
*  1              1              读数据(RDR)
****************************************************************************************/
#ifndef  LCDDRIVE_H
#define  LCDDRIVE_H


#define TRUE  1
#define FALSE 0

typedef unsigned char  uint8;                      
typedef unsigned short uint16; 
typedef unsigned int   uint32;
                 
#define  GUI_LCM_XMAX		240							/* 定义液晶x轴的点数 */
#define  GUI_LCM_YMAX		320							/* 定义液晶y轴的点数 */


/* 若需要交换x、y轴,则定义SWAP_XY为1 */
#define  SWAP_XY_EN         0


// TFT液晶模块硬件操作宏
#define  S6D0129_IR    	(*((volatile unsigned short *) 0x83200000)) 
#define  S6D0129_DR    	(*((volatile unsigned short *) 0x83200002))
#define  S6D0129_RST	(1<<22)


// 定义S6D0129的部份寄存器
#define  SET_ADDR_X		    0x0020		/* GRAM地址设置(R21H,R20H) */
#define  SET_ADDR_Y		    0x0021
#define  WR_RD_DATA		    0x0022		/* 写/读GRAM数据 (R22H) */

#define  SET_WINDOW_SX_EX	0x0046		/* window地址设置--x0,x1 (R46H) */
#define  SET_WINDOW_SY	    0x0048		/* window地址设置--y0 (R48H) */
#define  SET_WINDOW_EY	    0x0047		/* window地址设置--y1 (R47H) */


// 初始化数据结构定义
#define     DATA_END		0xFF00

// 定义初始化数据的结构
typedef  struct
{  uint16  com;				// 命令字
   uint16  dat;				// 数据
   uint16  dly;				// 命令延时控制(如50)

}  STCOM_INI;



/*******************************************************
* 名称: TftInit
* 功能: 初始化TFT液晶模块。
* 入口参数: 无
* 出口参数: 无
*******************************************************/
extern void  TftInit(void);



/*******************************************************
* 名称: TFT_UpdateRects
* 功能: 更新LCM显示区域。更新数据在Framebuffer中。
* 入口参数: x,y  		更新区域的起始点
*			w,y			区域宽度和高度
*           buffer      Framebuffer起始地址
* 出口参数: 无
*******************************************************/
extern void  TFT_UpdateRects( int x, int y, 		// 起始点坐标
    	                      int w, int h, 		// 区域宽度、高度
    	                      uint16 *buffer );	 	// Framebuffer起始地址 

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -