代码如下(示例):
/**************************************************************************************
* 描 述 : 初始化控制TFTLCD的IO
* 入 参 : 无
* 返回值 : 无
**************************************************************************************/
void LCD_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能FSMC时钟*/
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
/* 使能FSMC对应相应管脚时钟*/
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE
| RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOG
| RCC_APB2Periph_GPIOF , ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/* 配置LCD背光控制管脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/* 配置LCD复位控制管脚*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ;
GPIO_Init(GPIOD, &GPIO_InitStructure);
/* 配置FSMC相对应的数据线,FSMC-D0~D15: PD 14 15 0 1,PE 7 8 9 10 11 12 13 14 15,PD 8 9 10*/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 |
GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_Init(GPIOE, &GPIO_InitStructure);
/* 配置FSMC相对应的控制线
* PD4-FSMC_NOE :LCD-RD
* PD5-FSMC_NWE :LCD-WR
* PG12-FSMC_NE4 :LCD-CS
* PG0-FSMC_A10 :LCD-DC
*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_Init(GPIOG, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_Init(GPIOG, &GPIO_InitStructure);
/* 开背光 */
GPIO_ResetBits(GPIOD, GPIO_Pin_13);
}
/**************************************************************************************
* 描 述 : TFTLCD 初始化寄存器
* 入 参 : 无
* 返回值 : 无
**************************************************************************************/
void LCD_REG_Config(void)
{
LCD_ILI9341_CMD(0x11);
Delay_ms(120);
LCD_ILI9341_CMD(0x36);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_CMD(0x3A);
LCD_ILI9341_Parameter(0X05);
LCD_ILI9341_CMD(0xB2);
LCD_ILI9341_Parameter(0x0C);
LCD_ILI9341_Parameter(0x0C);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x33);
LCD_ILI9341_Parameter(0x33);
LCD_ILI9341_CMD(0xB7);
LCD_ILI9341_Parameter(0x35);
LCD_ILI9341_CMD(0xBB); //vcom
LCD_ILI9341_Parameter(0x32); //30
LCD_ILI9341_CMD(0xC0); //
LCD_ILI9341_Parameter(0x2C);
LCD_ILI9341_CMD(0xC2);
LCD_ILI9341_Parameter(0x01);
LCD_ILI9341_CMD(0xC3); //vrh
LCD_ILI9341_Parameter(0x10); //17 0D
LCD_ILI9341_CMD(0xC4); //vdv
LCD_ILI9341_Parameter(0x20); //20
LCD_ILI9341_CMD(0xC6);
LCD_ILI9341_Parameter(0x0f); //0f 调触摸闪动
LCD_ILI9341_CMD(0xD0);
LCD_ILI9341_Parameter(0xA4);
LCD_ILI9341_Parameter(0xA1);
LCD_ILI9341_CMD(0xE0); //Set Gamma
LCD_ILI9341_Parameter(0xd0);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x02);
LCD_ILI9341_Parameter(0x07);
LCD_ILI9341_Parameter(0x0a);
LCD_ILI9341_Parameter(0x28);
LCD_ILI9341_Parameter(0x32);
LCD_ILI9341_Parameter(0X44);
LCD_ILI9341_Parameter(0x42);
LCD_ILI9341_Parameter(0x06);
LCD_ILI9341_Parameter(0x0e);
LCD_ILI9341_Parameter(0x12);
LCD_ILI9341_Parameter(0x17);
LCD_ILI9341_CMD(0XE1); //Set Gamma
LCD_ILI9341_Parameter(0xd0);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x02);
LCD_ILI9341_Parameter(0x07);
LCD_ILI9341_Parameter(0x0a);
LCD_ILI9341_Parameter(0x28);
LCD_ILI9341_Parameter(0x31);
LCD_ILI9341_Parameter(0x54);
LCD_ILI9341_Parameter(0x47);
LCD_ILI9341_Parameter(0x0e);
LCD_ILI9341_Parameter(0x1c);
LCD_ILI9341_Parameter(0x17);
LCD_ILI9341_Parameter(0x1b);
LCD_ILI9341_Parameter(0x1e);
LCD_ILI9341_CMD(0x2A);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0xef);
LCD_ILI9341_CMD(0x2B);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x00);
LCD_ILI9341_Parameter(0x01);
LCD_ILI9341_Parameter(0x3f);
LCD_ILI9341_CMD(0x29); //display on
LCD_ILI9341_CMD(0x2c);
}