void LCD_Init(void) { LCD_GPIO_Config(); printf("GPIO Initaled.\r\n"); LCD_FSMC_Config(); printf("FSMC Configed.\r\n"); LCD_Rst(); printf("LCD Reseted.\r\n"); //printf("Invalid LCD ID:%08X\r\n",LCD_ReadReg(0x00)); LCD_WriteCmd(0xe2);//system reset Delay(5); LCD_WriteCmd(0xae); LCD_WriteCmd(0xf8); LCD_WriteCmd(0x00); LCD_WriteCmd(0xa2); LCD_WriteCmd(0xa0); LCD_WriteCmd(0xc0); LCD_WriteCmd(0xa6); LCD_WriteCmd(0xa4); LCD_WriteCmd(0xe0); LCD_WriteCmd(0xac); LCD_WriteCmd(0x00); LCD_WriteCmd(0x21); LCD_WriteCmd(0x81); LCD_WriteCmd(0x1e); LCD_WriteCmd(0x2f); LCD_WriteCmd(0x40); Delay(5); LCD_WriteCmd(0xaf); }
/** * @brief Init the GPIO port of the LCD and LCD peripheral. * @param None * @retval None */ void LCD_Seg_Init(void) { uint16_t i; LCD_InitPara LCD_InitStructure; /* Configure the LCD GPIO pins */ LCD_GPIO_Config(); /*!< Enable the clock of LCD */ RCC_APB1PeriphClock_Enable(RCC_APB1PERIPH_LCD, ENABLE); for(i=0;i<500;i++); /* Configure the LCD interface */ LCD_InitStructure.LCD_Prescaler = LCD_PRESCALER_1; LCD_InitStructure.LCD_Divider = LCD_DIVIDER_16; LCD_InitStructure.LCD_Duty = LCD_DUTY_1_4; LCD_InitStructure.LCD_VBias = LCD_BIAS_1_3; LCD_InitStructure.LCD_VSRC = LCD_VOLTAGESOURCE_INTERNAL; LCD_Init(&LCD_InitStructure); /* Configure the Pulse On Duration */ LCD_PulseOnDurationConfig(LCD_PULSEON_DURATION_7); /* Configure the Datatime Period */ LCD_DeadTimeConfig(LCD_DEADTIME_PERIOD_7); /* Configure the LCD Contrast LEVEL_7(3.51V) */ LCD_ContrastConfig(LCD_CONTRAST_LEVEL_7); /* Enable high drive function */ LCD_HighDrive_Enable(ENABLE); /* Loop until SYNF flag is set */ while ((LCD->SFR & LCD_FLAG_SYNF) == (uint32_t)RESET) { } /* Enable LCD peripheral */ LCD_Enable(ENABLE); /* Wait the LCD is enable */ while(!(LCD_GetBitState(LCD_FLAG_ONF))) { } /* Wait the LCD CFGR register synchronization */ // while(!(LCD_GetBitState(LCD_FLAG_VRDYF))) // { // } }
/************************************************* Function: Lcd_t35_init Description: Input: Output: Return: Others: *************************************************/ void Lcd_t35_init(void) { #if 0 uint8_t i,j; // uint16_t value[6]; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(LCD_RS_GPIO_CLK, ENABLE); GPIO_InitStructure.GPIO_Pin = LCD_RS_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(LCD_RS_GPIO, &GPIO_InitStructure); hw_spi2_cs_off(); for (i = 0 ; i < 14; i++) { Lcd_t35_writeCmd(mT35Init[i].Addr); for (j = 0 ; j < mT35Init[i].len; j++) { Lcd_t35_writeData(mT35Init[i].data[j]); } if(mT35Init[i].delay > 0) { hw_timer_delay_ms(mT35Init[i].delay); } if(0 == i) { hw_spi2_cs_on(); } } hw_spi2_cs_off(); #endif LCD_GPIO_Config(); Lcd_Initialize(); // hw_spi2_readbuf(0xBF, value, 6); // hw_serial_printf("0xBF [%x %x %x",value[0],value[1],value[2]); // hw_serial_printf(" %x %x %x]\r\n",value[3],value[4],value[5]); }
/********************************************** Lcd初始化函数 ***********************************************/ void Lcd_Initialize(void) { LCD_GPIO_Config(); LCD_FSMC_Config(); LCD_Rst(); //************* Start Initial Sequence **********// WriteComm(0xFF); // EXTC Command Set enable register WriteData(0xFF); WriteData(0x98); WriteData(0x06); WriteComm(0xBA); // SPI Interface Setting WriteData(0xE0); WriteComm(0xBC); // GIP 1 WriteData(0x03); WriteData(0x0F); WriteData(0x63); WriteData(0x69); WriteData(0x01); WriteData(0x01); WriteData(0x1B); WriteData(0x11); WriteData(0x70); WriteData(0x73); WriteData(0xFF); WriteData(0xFF); WriteData(0x08); WriteData(0x09); WriteData(0x05); WriteData(0x00); WriteData(0xEE); WriteData(0xE2); WriteData(0x01); WriteData(0x00); WriteData(0xC1); WriteComm(0xBD); // GIP 2 WriteData(0x01); WriteData(0x23); WriteData(0x45); WriteData(0x67); WriteData(0x01); WriteData(0x23); WriteData(0x45); WriteData(0x67); WriteComm(0xBE); // GIP 3 WriteData(0x00); WriteData(0x22); WriteData(0x27); WriteData(0x6A); WriteData(0xBC); WriteData(0xD8); WriteData(0x92); WriteData(0x22); WriteData(0x22); WriteComm(0xC7); // Vcom WriteData(0x1E); WriteComm(0xED); // EN_volt_reg WriteData(0x7F); WriteData(0x0F); WriteData(0x00); WriteComm(0xC0); // Power Control 1 WriteData(0xE3); WriteData(0x0B); WriteData(0x00); WriteComm(0xFC); WriteData(0x08); WriteComm(0xDF); // Engineering Setting WriteData(0x00); WriteData(0x00); WriteData(0x00); WriteData(0x00); WriteData(0x00); WriteData(0x02); WriteComm(0xF3); // DVDD Voltage Setting WriteData(0x74); WriteComm(0xB4); // Display Inversion Control WriteData(0x00); WriteData(0x00); WriteData(0x00); WriteComm(0xF7); // 480x854 WriteData(0x81); WriteComm(0xB1); // Frame Rate WriteData(0x00); WriteData(0x10); WriteData(0x14); WriteComm(0xF1); // Panel Timing Control WriteData(0x29); WriteData(0x8A); WriteData(0x07); WriteComm(0xF2); //Panel Timing Control WriteData(0x40); WriteData(0xD2); WriteData(0x50); WriteData(0x28); WriteComm(0xC1); // Power Control 2 WriteData(0x17); WriteData(0X85); WriteData(0x85); WriteData(0x20); WriteComm(0xE0); WriteData(0x00); //P1 WriteData(0x0C); //P2 WriteData(0x15); //P3 WriteData(0x0D); //P4 WriteData(0x0F); //P5 WriteData(0x0C); //P6 WriteData(0x07); //P7 WriteData(0x05); //P8 WriteData(0x07); //P9 WriteData(0x0B); //P10 WriteData(0x10); //P11 WriteData(0x10); //P12 WriteData(0x0D); //P13 WriteData(0x17); //P14 WriteData(0x0F); //P15 WriteData(0x00); //P16 WriteComm(0xE1); WriteData(0x00); //P1 WriteData(0x0D); //P2 WriteData(0x15); //P3 WriteData(0x0E); //P4 WriteData(0x10); //P5 WriteData(0x0D); //P6 WriteData(0x08); //P7 WriteData(0x06); //P8 WriteData(0x07); //P9 WriteData(0x0C); //P10 WriteData(0x11); //P11 WriteData(0x11); //P12 WriteData(0x0E); //P13 WriteData(0x17); //P14 WriteData(0x0F); //P15 WriteData(0x00); //P16 WriteComm(0x35); //Tearing Effect ON WriteData(0x00); WriteComm(0x36); WriteData(0x60); WriteComm(0x3A); WriteData(0x55); WriteComm(0x11); //Exit Sleep LCD_delay(120); WriteComm(0x29); // Display On LCD_delay(10); Lcd_Light_ON; WriteComm(0x3A); WriteData(0x55); WriteComm(0x36); WriteData(0xA8); Lcd_ColorBox(0,0,800,480,YELLOW); // LCD_Fill_Pic(80,160,320,480, gImage_MM_T035); // BlockWrite(0,0,799,479); }