📄 ltm024d130.c
字号:
LCD_RD = 0xFF; /* 拉高RD */
LCD_RD = 0x00; /* 拉低RD */
LCD_RD = 0xFF; /* 拉高RD */
LCD_RD = 0x00; /* 拉低RD */
usRetrun = DATA_PORT; /* 读入高8位数据 */
LCD_RD = 0xFF; /* 拉高RD */
LCD_RD = 0x00; /* 拉低RD */
usRetrun = (usRetrun << 8) + DATA_PORT; /* 读入低8位数据 */
LCD_RD = 0xFF; /* 拉高RD */
LCD_CS = 0xFF; /* 拉高CS */
DATA_PROT_OUTPUT_SET(); /* 还原为输出端口 */
return usRetrun;
}
/*********************************************************************************************************
** 函数名称: __writeData16
** 功能描述: (向当前地址的寄存器)写16位数据
** 输 入: usData 要写入液晶的16位数据
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
** 返 回:无
** 作 者: 张展威
** 日 期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void __writeData16(INT16U usData) /* 写16位数据函数 */
{
LCD_CS = 0x00;
LCD_RS = 0xFF; /* 拉高RS */
DATA_PORT = (INT8U)(usData>>8); /* 写高8位数据 */
LCD_WR = 0x00; /* 拉低WR */
LCD_WR = 0xFF; /* 拉高WR */
DATA_PORT = (INT8U)usData; /* 写低8位数据 */
LCD_WR = 0x00; /* 拉低WR */
LCD_WR = 0xFF; /* 拉高WR */
//LCD_RS = 0xFF; /* 拉高RS */
LCD_CS = 0xFF; /* 拉高CS */
}
/*********************************************************************************************************
** 函数名称: __writeCommand
** 功能描述: 写命令函数
** 输 入: bCmdWidth 0,命令字为8位;1,命令字为16位
** ucAddr 命令寄存器地址
** usCmd 命令字
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
** 返 回:无
** 作 者: 张展威
** 日 期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void __writeCommand(BOOLEAN bCmdWidth,INT8U ucAddr,INT16U usCmd)
{
// 写8位地址
LCD_CS = 0x00;
LCD_RS = 0x00; /* 拉低RS */
DATA_PORT = ucAddr;
LCD_WR = 0x00;
LCD_WR = 0xFF;
LCD_RS = 0xFF; /* 拉高RS */
if(bCmdWidth) {
// 高8位数据
//LCD_RS = 0xFF; /* 拉高RS */
DATA_PORT = (INT8U)(usCmd >> 8);
LCD_WR = 0x00;
LCD_WR = 0xFF;
}
// 低8位数据
DATA_PORT = (INT8U)usCmd;
LCD_WR = 0x00;
LCD_WR = 0xFF;
LCD_CS = 0xFF;
}
/*********************************************************************************************************
** 函数名称: windowset
** 功能描述: 窗口设置
** 输 入: x1,y1 窗口起始坐标
** x2,y2 窗口结束坐标
** 输 出: 无
** 全局变量: 无
** 调用模块: __writeCommand()
** 返 回:无
** 作 者: 张展威
** 日 期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void windowset(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2)
{
__writeCommand(0,0x06, x1); /* 水平起始位置 */
__writeCommand(1,0x07, y1); /* 垂直起始位置 */
__writeCommand(0,0x04, x2); /* 结束列数(0~239) */
__writeCommand(1,0x05, y2); /* 结束行数(0~319) */
}
/*********************************************************************************************************
** 函数名称: tftLcdInit
** 功能描述: 液晶初始化
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: __writeCommand()、windowset()、__screenFill()
** 返 回:无
** 作 者: 张展威
** 日 期: 2008年7月22日
**------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日 期:
**------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void tftLcdInit(void) /* 初始化函数 */
{
SysCtlPeriEnable(LCD_PERI); /* 使能相应的GPIO */
GPIOPinTypeOut(LCD_CS_BASE_PIN); /* 设置相应的控制管脚为输出 */
GPIOPinTypeOut(LCD_WR_BASE_PIN); /* 设置相应的控制管脚为输出 */
GPIOPinTypeOut(LCD_RS_BASE_PIN); /* 设置相应的控制管脚为输出 */
GPIOPinTypeOut(LCD_RD_BASE_PIN); /* 设置相应的控制管脚为输出 */
GPIOPinTypeOut(LCD_RST_BASE_PIN); /* 设置相应的控制管脚为输出 */
GPIOPinTypeOut(DATA_PORT_BASE_PIN); /* 设置相应的数据管脚为输出 */
LCD_RS = 0xFF; /* 初始化输出为高电平 */
LCD_CS = 0xFF; /* 初始化输出为高电平 */
LCD_WR = 0xFF;; /* 初始化输出为高电平 */
LCD_RD = 0xFF; /* 初始化输出为高电平 */
LCD_RST = 0xFF; /* 初始化输出为高电平 */
DATA_PORT = 0xFF;
LCD_RST = 0x00; /* 拉低复位引脚 */
SysCtlDelay(10 * SysCtlClockGet() / 3000);
LCD_RST = 0xFF; /* 拉高复位引脚 */
SysCtlDelay(10 * SysCtlClockGet() / 3000);
//initializing funciton 1
__writeCommand(0,0xA1,0x00);
__writeCommand(0,0xA0,0x00);
__writeCommand(0,0x70,0xC8);
SysCtlDelay(2 * SysCtlClockGet() / 3000);
__writeCommand(0,0x72,0xA3);
__writeCommand(0,0x73,0x04);
__writeCommand(0,0x75,0x45);
__writeCommand(0,0x76,0x23);
__writeCommand(0,0x77,0x08);
__writeCommand(0,0x78,0x08);
__writeCommand(0,0x79,0x00);
__writeCommand(0,0x7F,0xF0);
__writeCommand(0,0x71,0x81);
SysCtlDelay(2 * SysCtlClockGet() / 3000);
__writeCommand(0,0x0D,0x23);
__writeCommand(0,0x11,0x00);
__writeCommand(0,0x12,0x00);
__writeCommand(0,0x21,0x37);
__writeCommand(0,0x22,0x02);
__writeCommand(0,0x23,0x24);
__writeCommand(0,0x24,0x13);
__writeCommand(0,0x25,0x0A);
__writeCommand(0,0x26,0x82);
__writeCommand(0,0x27,0x01);
__writeCommand(0,0x1E,0x25);
__writeCommand(0,0x1F,0x59);
//GAMMA设置
__writeCommand(1,0x30,0x0777);
__writeCommand(1,0x31,0x0444);
__writeCommand(1,0x32,0x0555);
__writeCommand(1,0x33,0x0444);
__writeCommand(1,0x34,0x0333);
__writeCommand(1,0x35,0x0333);
__writeCommand(1,0x36,0x0333);
__writeCommand(1,0x37,0x0333);
__writeCommand(1,0x38,0x0444);
__writeCommand(1,0x39,0x0555);
__writeCommand(1,0x3A,0x0666);
__writeCommand(1,0x3B,0x0666);
__writeCommand(1,0x3C,0x0777);
__writeCommand(1,0x3D,0x0777);
__writeCommand(1,0x3E,0x0777);
__writeCommand(1,0x3F,0x0777);
__writeCommand(1,0x40,0x0777);
__writeCommand(1,0x41,0x0777);
__writeCommand(1,0x42,0x0777);
__writeCommand(1,0x43,0x0777);
__writeCommand(1,0x44,0x0777);
__writeCommand(1,0x45,0x0777);
__writeCommand(1,0x46,0x0777);
__writeCommand(1,0x47,0x0777);
__writeCommand(1,0x48,0x0777);
__writeCommand(1,0x49,0x0777);
__writeCommand(1,0x4A,0x0777);
__writeCommand(1,0x4B,0x0777);
__writeCommand(1,0x4C,0x0777);
__writeCommand(1,0x4D,0x0666);
__writeCommand(1,0x4E,0x0666);
__writeCommand(1,0x4F,0x0666);
//扫描方向控制
__writeCommand(0,0x00,0x04); /* 扫描方向控制 */
__writeCommand(0,0x01,0x07); /* 扫描方向控制 */
//窗口设置
windowset(0, 0, 239, 319);
__writeCommand(0,0x08, 239); /* 水平结束位置 */
__writeCommand(1,0x09, 319); /* 垂直结束位置 */
//坐标设置
__writeCommand(0,0x02,0x00); /* X (0~239) */
__writeCommand(1,0x03,0x0000); /* Y (0~319) */
__writeCommand(0,0x0A,0x00);
__writeCommand(0,0x0B,0x00);
__writeCommand(0,0x0C,0x00);
__writeCommand(0,0x14,0x00);
__writeCommand(0,0x15,0x00);
__writeCommand(0,0x16,0x00);
__writeCommand(1,0x17,0x01FF);
__writeCommand(1,0x18,0x01FF);
__writeCommand(0,0x13,0x00);
__writeCommand(1,0x19,0x01FF);
__writeCommand(1,0x1B,0x01FF);
__writeCommand(1,0x1C,0x01FF);
__writeCommand(1,0x1A,0x01FF);
__writeCommand(0,0x1D,0x0E);
__screenFill(GusBACKCOLOR); /* 填充背景色 */
__writeCommand(0,0x10,0x06); /* 开显示 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -