我每次编译完程序下进去是能显示的。但是我重新上电就白屏了。之后自己debug发现程序卡死在。写数据那里。我截图出来。
LCD_ILI9341_CMD(0xCF);
DEBUG_DELAY();
LCD_ILI9341_Parameter (0x00); //卡死在这个语句里面
LCD_ILI9341_Parameter (0xC1); //8B
LCD_ILI9341_Parameter (0X30);
奇怪的是 我是用SW仿真的。我下载完之后。程序跑起来。我按复位他是能正常显示的,。但是只要我一重新上电。。就卡死在这个语句里面LCD_ILI9341_Paramete。
本人推断:我下完程序能正常显示。证明我地址设置那些没错的。所以我不考虑这个。。时序的话 我是按照手册做的 我自己用示波器来测量过也是准备。。求各位提出宝贵的意见。我的液晶是9341 我把9341的附件也发上来
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]void LCD_Rst(void)
{
GPIO_SetBits(GPIOD, GPIO_Pin_11);
Delay50us(20); //1ms
GPIO_ResetBits(GPIOD, GPIO_Pin_11); //??????????
Delay50us(200); //10ms
GPIO_SetBits(GPIOD, GPIO_Pin_11);
Delay50us(800); //120ms
}
/**
* @brief ????lcd???????????÷
* @param ??
* @retval ??
*/
void LCD_REG_Config(void)
{
LCD_ILI9341_CMD(0xCF);
DEBUG_DELAY();
LCD_ILI9341_Parameter (0x00); //卡死在这个语句里面
LCD_ILI9341_Parameter (0xC1); //8B
LCD_ILI9341_Parameter (0X30);
LCD_ILI9341_CMD(0xED);
DEBUG_DELAY();
LCD_ILI9341_Parameter (0x67);
LCD_ILI9341_Parameter (0x03);
LCD_ILI9341_Parameter (0X12);
LCD_ILI9341_Parameter (0X81);
LCD_ILI9341_CMD(0xE8);
LCD_ILI9341_Parameter (0x85);
LCD_ILI9341_Parameter (0x10);
LCD_ILI9341_Parameter (0x7A);
LCD_ILI9341_CMD(0xCB);
LCD_ILI9341_Parameter (0x39);
LCD_ILI9341_Parameter (0x2C);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x34);
LCD_ILI9341_Parameter (0x02);
LCD_ILI9341_CMD(0xF7);
LCD_ILI9341_Parameter (0x20);
LCD_ILI9341_CMD(0xEA);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_CMD(0xC0); //Power control
LCD_ILI9341_Parameter (0x1B); //VRH[5:0]
LCD_ILI9341_CMD(0xC1); //Power control
LCD_ILI9341_Parameter (0x10); //SAP[2:0];BT[3:0]
LCD_ILI9341_CMD(0xC5); //VCM control
LCD_ILI9341_Parameter (0x3F);
LCD_ILI9341_Parameter (0x3C);
LCD_ILI9341_CMD(0xC7); //VCM control2
LCD_ILI9341_Parameter (0XB7);
LCD_ILI9341_CMD(0x36); // Memory Access Control
LCD_ILI9341_Parameter (0x08);
LCD_ILI9341_CMD(0x3A);
LCD_ILI9341_Parameter (0x55);
LCD_ILI9341_CMD(0xB1);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x1B);
LCD_ILI9341_CMD(0xB6); // Display Function Control
LCD_ILI9341_Parameter (0x0A);
LCD_ILI9341_Parameter (0xA2);
LCD_ILI9341_CMD(0xF2); // 3Gamma Function Disable
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_CMD(0x26); //Gamma curve selected
LCD_ILI9341_Parameter (0x01);
LCD_ILI9341_CMD(0xE0); //Set Gamma
LCD_ILI9341_Parameter (0x0F);
LCD_ILI9341_Parameter (0x2A);
LCD_ILI9341_Parameter (0x28);
LCD_ILI9341_Parameter (0x08);
LCD_ILI9341_Parameter (0x0E);
LCD_ILI9341_Parameter (0x08);
LCD_ILI9341_Parameter (0x54);
LCD_ILI9341_Parameter (0XA9);
LCD_ILI9341_Parameter (0x43);
LCD_ILI9341_Parameter (0x0A);
LCD_ILI9341_Parameter (0x0F);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_CMD(0XE1); //Set Gamma
LCD_ILI9341_Parameter (0x00);
LCD_ILI9341_Parameter (0x15);
LCD_ILI9341_Parameter (0x17);
LCD_ILI9341_Parameter (0x07);
LCD_ILI9341_Parameter (0x11);
LCD_ILI9341_Parameter (0x06);
LCD_ILI9341_Parameter (0x2B);
LCD_ILI9341_Parameter (0x56);
LCD_ILI9341_Parameter (0x3C);
LCD_ILI9341_Parameter (0x05);
LCD_ILI9341_Parameter (0x10);
LCD_ILI9341_Parameter (0x0F);
LCD_ILI9341_Parameter (0x3F);
LCD_ILI9341_Parameter (0x3F);
LCD_ILI9341_Parameter (0x0F);
LCD_ILI9341_CMD(0x11); //Exit Sleep
Delay50us(2400);//Delayms(120);
LCD_ILI9341_CMD(0x29); //Display on
}
void LCD_Init(void)
{
LCD_GPIO_Config();
LCD_FSMC_Config();
GPIO_ResetBits(GPIOE, GPIO_Pin_1);
// GPIO_SetBits(GPIOE, GPIO_Pin_1);
LCD_Rst();
LCD_REG_Config();
}[/mw_shl_code]
|