示例#1
0
/**
  * @brief  Disables the Display.
  * @param  None
  * @retval None
  */
void ili9341_DisplayOff(void* pDisplay)
{
  /* Display Off */
	tDisplay* _pDisplay = (tDisplay *) pDisplay;
	ili9341_WriteReg(_pDisplay, LCD_DISPLAY_OFF);
}
示例#2
0
/**
  * @brief  Power on the LCD.
  * @param  None
  * @retval None
  */
bool ili9341_Init(void* pDisplay)
{
	tDisplay* _pDisplay = (tDisplay *) pDisplay;
	ILI9341_t *structure = (ILI9341_t *)_pDisplay->UserData;
	gpio.out(structure->CS, 0);
	gpio.out(structure->CS, 1);
	gpio.out(structure->RW, 1);
	gpio.out(structure->RD, 1);
	ili9341_WriteReg(_pDisplay, 0xCA);
	ili9341_WriteData(_pDisplay, 0xC3);
	ili9341_WriteData(_pDisplay, 0x08);
	ili9341_WriteData(_pDisplay, 0x50);
	ili9341_WriteReg(_pDisplay, LCD_POWERB);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0xC1);
	ili9341_WriteData(_pDisplay, 0x30);
	ili9341_WriteReg(_pDisplay, LCD_POWER_SEQ);
	ili9341_WriteData(_pDisplay, 0x64);
	ili9341_WriteData(_pDisplay, 0x03);
	ili9341_WriteData(_pDisplay, 0x12);
	ili9341_WriteData(_pDisplay, 0x81);
	ili9341_WriteReg(_pDisplay, LCD_DTCA);
	ili9341_WriteData(_pDisplay, 0x85);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x78);
	ili9341_WriteReg(_pDisplay, LCD_POWERA);
	ili9341_WriteData(_pDisplay, 0x39);
	ili9341_WriteData(_pDisplay, 0x2C);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x34);
	ili9341_WriteData(_pDisplay, 0x02);
	ili9341_WriteReg(_pDisplay, LCD_PRC);
	ili9341_WriteData(_pDisplay, 0x20);
	ili9341_WriteReg(_pDisplay, LCD_DTCB);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteReg(_pDisplay, LCD_FRMCTR1);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x1B);
	ili9341_WriteReg(_pDisplay, LCD_DFC);
	ili9341_WriteData(_pDisplay, 0x0A);
	ili9341_WriteData(_pDisplay, 0xA2);
	ili9341_WriteReg(_pDisplay, LCD_POWER1);
	ili9341_WriteData(_pDisplay, 0x10);
	ili9341_WriteReg(_pDisplay, LCD_POWER2);
	ili9341_WriteData(_pDisplay, 0x10);
	ili9341_WriteReg(_pDisplay, LCD_VCOM1);
	ili9341_WriteData(_pDisplay, 0x45);
	ili9341_WriteData(_pDisplay, 0x15);
	ili9341_WriteReg(_pDisplay, LCD_VCOM2);
	ili9341_WriteData(_pDisplay, 0x90);
	ili9341_WriteReg(_pDisplay, LCD_MAC);
	ili9341_WriteData(_pDisplay, 0xC8);
	ili9341_WriteReg(_pDisplay, LCD_3GAMMA_EN);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteReg(_pDisplay, LCD_RGB_INTERFACE);
	ili9341_WriteData(_pDisplay, 0xC2);
	ili9341_WriteReg(_pDisplay, LCD_DFC);
	ili9341_WriteData(_pDisplay, 0x0A);
	ili9341_WriteData(_pDisplay, 0xA7);
	ili9341_WriteData(_pDisplay, 0x27);
	ili9341_WriteData(_pDisplay, 0x04);

	/* Colomn address set */
	ili9341_WriteReg(_pDisplay, LCD_COLUMN_ADDR);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0xEF);
	/* Page address set */
	ili9341_WriteReg(_pDisplay, LCD_PAGE_ADDR);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x01);
	ili9341_WriteData(_pDisplay, 0x3F);
	ili9341_WriteReg(_pDisplay, LCD_INTERFACE);
	ili9341_WriteData(_pDisplay, 0x01);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x06);

	ili9341_WriteReg(_pDisplay, LCD_GRAM);
	sys_delay(200);

	ili9341_WriteReg(_pDisplay, LCD_GAMMA);
	ili9341_WriteData(_pDisplay, 0x01);

	ili9341_WriteReg(_pDisplay, LCD_PGAMMA);
	ili9341_WriteData(_pDisplay, 0x0F);
	ili9341_WriteData(_pDisplay, 0x29);
	ili9341_WriteData(_pDisplay, 0x24);
	ili9341_WriteData(_pDisplay, 0x0C);
	ili9341_WriteData(_pDisplay, 0x0E);
	ili9341_WriteData(_pDisplay, 0x09);
	ili9341_WriteData(_pDisplay, 0x4E);
	ili9341_WriteData(_pDisplay, 0x78);
	ili9341_WriteData(_pDisplay, 0x3C);
	ili9341_WriteData(_pDisplay, 0x09);
	ili9341_WriteData(_pDisplay, 0x13);
	ili9341_WriteData(_pDisplay, 0x05);
	ili9341_WriteData(_pDisplay, 0x17);
	ili9341_WriteData(_pDisplay, 0x11);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteReg(_pDisplay, LCD_NGAMMA);
	ili9341_WriteData(_pDisplay, 0x00);
	ili9341_WriteData(_pDisplay, 0x16);
	ili9341_WriteData(_pDisplay, 0x1B);
	ili9341_WriteData(_pDisplay, 0x04);
	ili9341_WriteData(_pDisplay, 0x11);
	ili9341_WriteData(_pDisplay, 0x07);
	ili9341_WriteData(_pDisplay, 0x31);
	ili9341_WriteData(_pDisplay, 0x33);
	ili9341_WriteData(_pDisplay, 0x42);
	ili9341_WriteData(_pDisplay, 0x05);
	ili9341_WriteData(_pDisplay, 0x0C);
	ili9341_WriteData(_pDisplay, 0x0A);
	ili9341_WriteData(_pDisplay, 0x28);
	ili9341_WriteData(_pDisplay, 0x2F);
	ili9341_WriteData(_pDisplay, 0x0F);

	ili9341_WriteReg(_pDisplay, LCD_SLEEP_OUT);
	sys_delay(200);
	ili9341_WriteReg(_pDisplay, LCD_DISPLAY_ON);
	/* GRAM start writing */
	ili9341_WriteReg(_pDisplay, LCD_GRAM);
	return true;
}
示例#3
0
/**
 * @brief  Disables the Display.
 * @param  None
 * @retval None
 */
void ili9341_DisplayOff(void)
{
	/* Display Off */
	ili9341_WriteReg(LCD_DISPLAY_OFF);
}
示例#4
0
/**
 * @brief  Enables the Display.
 * @param  None
 * @retval None
 */
void ili9341_DisplayOn(void)
{
	/* Display On */
	ili9341_WriteReg(LCD_DISPLAY_ON);
}
示例#5
0
/**
 * @brief  Power on the LCD.
 * @param  None
 * @retval None
 */
void ili9341_Init(void)
{
	if (Is_ili9341_Initialized == 0)
	{
		Is_ili9341_Initialized = 1;
		/* Initialise ILI9341 low level bus layer --------------------------------*/
		LCD_IO_Init();

		/*Configure LCD*/
		ili9341_WriteReg(0xCA);
		ili9341_WriteData(0xC3);
		ili9341_WriteData(0x08);
		ili9341_WriteData(0x50);
		ili9341_WriteReg(LCD_POWERB);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0xC1);
		ili9341_WriteData(0x30);
		ili9341_WriteReg(LCD_POWER_SEQ);
		ili9341_WriteData(0x64);
		ili9341_WriteData(0x03);
		ili9341_WriteData(0x12);
		ili9341_WriteData(0x81);
		ili9341_WriteReg(LCD_DTCA);
		ili9341_WriteData(0x85);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x78);
		ili9341_WriteReg(LCD_POWERA);
		ili9341_WriteData(0x39);
		ili9341_WriteData(0x2C);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x34);
		ili9341_WriteData(0x02);
		ili9341_WriteReg(LCD_PRC);
		ili9341_WriteData(0x20);
		ili9341_WriteReg(LCD_DTCB);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x00);
		ili9341_WriteReg(LCD_FRMCTR1);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x1B);
		ili9341_WriteReg(LCD_DFC);
		ili9341_WriteData(0x0A);
		ili9341_WriteData(0xA2);
		ili9341_WriteReg(LCD_POWER1);
		ili9341_WriteData(0x10);
		ili9341_WriteReg(LCD_POWER2);
		ili9341_WriteData(0x10);
		ili9341_WriteReg(LCD_VCOM1);
		ili9341_WriteData(0x45);
		ili9341_WriteData(0x15);
		ili9341_WriteReg(LCD_VCOM2);
		ili9341_WriteData(0x90);
		ili9341_WriteReg(LCD_MAC);
		ili9341_WriteData(0xC8);
		ili9341_WriteReg(LCD_3GAMMA_EN);
		ili9341_WriteData(0x00);
		ili9341_WriteReg(LCD_RGB_INTERFACE);
		ili9341_WriteData(0xC2);
		ili9341_WriteReg(LCD_DFC);
		ili9341_WriteData(0x0A);
		ili9341_WriteData(0xA7);
		ili9341_WriteData(0x27);
		ili9341_WriteData(0x04);

		/* colomn address set */
		ili9341_WriteReg(LCD_COLUMN_ADDR);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0xEF);
		/* Page Address Set */
		ili9341_WriteReg(LCD_PAGE_ADDR);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x01);
		ili9341_WriteData(0x3F);
		ili9341_WriteReg(LCD_INTERFACE);
		ili9341_WriteData(0x01);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x06);

		ili9341_WriteReg(LCD_GRAM);
		LCD_Delay(200);

		ili9341_WriteReg(LCD_GAMMA);
		ili9341_WriteData(0x01);

		ili9341_WriteReg(LCD_PGAMMA);
		ili9341_WriteData(0x0F);
		ili9341_WriteData(0x29);
		ili9341_WriteData(0x24);
		ili9341_WriteData(0x0C);
		ili9341_WriteData(0x0E);
		ili9341_WriteData(0x09);
		ili9341_WriteData(0x4E);
		ili9341_WriteData(0x78);
		ili9341_WriteData(0x3C);
		ili9341_WriteData(0x09);
		ili9341_WriteData(0x13);
		ili9341_WriteData(0x05);
		ili9341_WriteData(0x17);
		ili9341_WriteData(0x11);
		ili9341_WriteData(0x00);
		ili9341_WriteReg(LCD_NGAMMA);
		ili9341_WriteData(0x00);
		ili9341_WriteData(0x16);
		ili9341_WriteData(0x1B);
		ili9341_WriteData(0x04);
		ili9341_WriteData(0x11);
		ili9341_WriteData(0x07);
		ili9341_WriteData(0x31);
		ili9341_WriteData(0x33);
		ili9341_WriteData(0x42);
		ili9341_WriteData(0x05);
		ili9341_WriteData(0x0C);
		ili9341_WriteData(0x0A);
		ili9341_WriteData(0x28);
		ili9341_WriteData(0x2F);
		ili9341_WriteData(0x0F);

		ili9341_WriteReg(LCD_SLEEP_OUT);
		LCD_Delay(200);
		ili9341_WriteReg(LCD_DISPLAY_ON);
		/* GRAM start writing */
		ili9341_WriteReg(LCD_GRAM);

	}
}
示例#6
0
/**
  * @brief  Power on the LCD.
  * @param  None
  * @retval None
  */
void ili9341_Init(void)
{
  /* Initialize ILI9341 low level bus layer ----------------------------------*/
  LCD_IO_Init();
  
  /* Configure LCD */
  ili9341_WriteReg(0xCA);
  ili9341_WriteData(0xC3);
  ili9341_WriteData(0x08);
  ili9341_WriteData(0x50);
  ili9341_WriteReg(LCD_POWERB);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0xC1);
  ili9341_WriteData(0x30);
  ili9341_WriteReg(LCD_POWER_SEQ);
  ili9341_WriteData(0x64);
  ili9341_WriteData(0x03);
  ili9341_WriteData(0x12);
  ili9341_WriteData(0x81);
  ili9341_WriteReg(LCD_DTCA);
  ili9341_WriteData(0x85);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x78);
  ili9341_WriteReg(LCD_POWERA);
  ili9341_WriteData(0x39);
  ili9341_WriteData(0x2C);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x34);
  ili9341_WriteData(0x02);
  ili9341_WriteReg(LCD_PRC);
  ili9341_WriteData(0x20);
  ili9341_WriteReg(LCD_DTCB);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteReg(LCD_FRMCTR1);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x1B);
  ili9341_WriteReg(LCD_DFC);
  ili9341_WriteData(0x0A);
  ili9341_WriteData(0xA2);
  ili9341_WriteReg(LCD_POWER1);
  ili9341_WriteData(0x10);
  ili9341_WriteReg(LCD_POWER2);
  ili9341_WriteData(0x10);
  ili9341_WriteReg(LCD_VCOM1);
  ili9341_WriteData(0x45);
  ili9341_WriteData(0x15);
  ili9341_WriteReg(LCD_VCOM2);
  ili9341_WriteData(0x90);
  ili9341_WriteReg(LCD_MAC);
#if 1	// test
  ili9341_WriteData(0x28);
#else
  ili9341_WriteData(0xC8);
#endif
  ili9341_WriteReg(LCD_3GAMMA_EN);
  ili9341_WriteData(0x00);
#ifndef LCD_IF_MCU_ONLY
  ili9341_WriteReg(LCD_RGB_INTERFACE);
  ili9341_WriteData(0xC2);
#endif
  ili9341_WriteReg(LCD_DFC);
  ili9341_WriteData(0x0A);
  ili9341_WriteData(0xA7);
  ili9341_WriteData(0x27);
  ili9341_WriteData(0x04);
 
#if 1	// test
  /* Colomn address set */
  ili9341_WriteReg(LCD_COLUMN_ADDR);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x01);
  ili9341_WriteData(0x3F);
  /* Page address set */
  ili9341_WriteReg(LCD_PAGE_ADDR);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0xEF);
#else
  /* Colomn address set */
  ili9341_WriteReg(LCD_COLUMN_ADDR);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0xEF);
  /* Page address set */
  ili9341_WriteReg(LCD_PAGE_ADDR);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x01);
  ili9341_WriteData(0x3F);
#endif

#ifdef LCD_IF_MCU_ONLY
  ili9341_WriteReg(LCD_INTERFACE);
  ili9341_WriteData(0x01);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x00);
#ifdef LCD_RGB_565
  ili9341_WriteReg(LCD_PIXEL_FORMAT);
  ili9341_WriteData(0x55);
#endif
#else
  ili9341_WriteReg(LCD_INTERFACE);
  ili9341_WriteData(0x01);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x06);
#endif
  
  ili9341_WriteReg(LCD_GRAM);
  LCD_Delay(200);
  
  ili9341_WriteReg(LCD_GAMMA);
  ili9341_WriteData(0x01);
  
  ili9341_WriteReg(LCD_PGAMMA);
  ili9341_WriteData(0x0F);
  ili9341_WriteData(0x29);
  ili9341_WriteData(0x24);
  ili9341_WriteData(0x0C);
  ili9341_WriteData(0x0E);
  ili9341_WriteData(0x09);
  ili9341_WriteData(0x4E);
  ili9341_WriteData(0x78);
  ili9341_WriteData(0x3C);
  ili9341_WriteData(0x09);
  ili9341_WriteData(0x13);
  ili9341_WriteData(0x05);
  ili9341_WriteData(0x17);
  ili9341_WriteData(0x11);
  ili9341_WriteData(0x00);
  ili9341_WriteReg(LCD_NGAMMA);
  ili9341_WriteData(0x00);
  ili9341_WriteData(0x16);
  ili9341_WriteData(0x1B);
  ili9341_WriteData(0x04);
  ili9341_WriteData(0x11);
  ili9341_WriteData(0x07);
  ili9341_WriteData(0x31);
  ili9341_WriteData(0x33);
  ili9341_WriteData(0x42);
  ili9341_WriteData(0x05);
  ili9341_WriteData(0x0C);
  ili9341_WriteData(0x0A);
  ili9341_WriteData(0x28);
  ili9341_WriteData(0x2F);
  ili9341_WriteData(0x0F);
  
  ili9341_WriteReg(LCD_SLEEP_OUT);
  LCD_Delay(200);
  ili9341_WriteReg(LCD_DISPLAY_ON);
  /* GRAM start writing */
  ili9341_WriteReg(LCD_GRAM);
}