void TM_ILI9341_Fill(uint16_t color) { unsigned int n, i, j; i = color >> 8; j = color & 0xFF; TM_ILI9341_SetCursorPosition(0, 0, ILI9341_Opts.width - 1, ILI9341_Opts.height - 1); TM_ILI9341_SendCommand(ILI9341_GRAM); for (n = 0; n < ILI9341_PIXEL; n++) { TM_ILI9341_SendData(i); TM_ILI9341_SendData(j); } }
void TM_ILI9341_SetCursorPosition(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { TM_ILI9341_SendCommand(ILI9341_COLUMN_ADDR); TM_ILI9341_SendData(x1 >> 8); TM_ILI9341_SendData(x1 & 0xFF); TM_ILI9341_SendData(x2 >> 8); TM_ILI9341_SendData(x2 & 0xFF); TM_ILI9341_SendCommand(ILI9341_PAGE_ADDR); TM_ILI9341_SendData(y1 >> 8); TM_ILI9341_SendData(y1 & 0xFF); TM_ILI9341_SendData(y2 >> 8); TM_ILI9341_SendData(y2 & 0xFF); }
void TM_ILI9341_DrawPixel(uint16_t x, uint16_t y, uint16_t color) { TM_ILI9341_SetCursorPosition(x, y, x, y); TM_ILI9341_SendCommand(ILI9341_GRAM); TM_ILI9341_SendData(color >> 8); TM_ILI9341_SendData(color & 0xFF); }
void TM_ILI9341_Rotate(TM_ILI9341_Orientation_t orientation) { TM_ILI9341_SendCommand(ILI9341_MAC); if (orientation == TM_ILI9341_Orientation_Portrait_1) { TM_ILI9341_SendData(0x58); } else if (orientation == TM_ILI9341_Orientation_Portrait_2) { TM_ILI9341_SendData(0x88); } else if (orientation == TM_ILI9341_Orientation_Landscape_1) { TM_ILI9341_SendData(0x28); } else if (orientation == TM_ILI9341_Orientation_Landscape_2) { TM_ILI9341_SendData(0xE8); } if (orientation == TM_ILI9341_Orientation_Portrait_1 || orientation == TM_ILI9341_Orientation_Portrait_2) { ILI9341_Opts.width = ILI9341_WIDTH; ILI9341_Opts.height = ILI9341_HEIGHT; ILI9341_Opts.orientation = TM_ILI9341_Portrait; } else { ILI9341_Opts.width = ILI9341_HEIGHT; ILI9341_Opts.height = ILI9341_WIDTH; ILI9341_Opts.orientation = TM_ILI9341_Landscape; } }
void TM_ILI9341_InitLCD(void) { taskENTER_CRITICAL(); //ILI9341_RST_RESET; ILI9341_RST_SET; TM_ILI9341_SendCommand(ILI9341_RESET); TM_ILI9341_Delay(2000000); TM_ILI9341_SendCommand(ILI9341_POWERA); TM_ILI9341_SendData(0x39); TM_ILI9341_SendData(0x2C); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x34); TM_ILI9341_SendData(0x02); TM_ILI9341_SendCommand(ILI9341_POWERB); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0xC1); TM_ILI9341_SendData(0x30); TM_ILI9341_SendCommand(ILI9341_DTCA); TM_ILI9341_SendData(0x85); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x78); TM_ILI9341_SendCommand(ILI9341_DTCB); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_POWER_SEQ); TM_ILI9341_SendData(0x64); TM_ILI9341_SendData(0x03); TM_ILI9341_SendData(0x12); TM_ILI9341_SendData(0x81); TM_ILI9341_SendCommand(ILI9341_PRC); TM_ILI9341_SendData(0x20); TM_ILI9341_SendCommand(ILI9341_POWER1); TM_ILI9341_SendData(0x23); TM_ILI9341_SendCommand(ILI9341_POWER2); TM_ILI9341_SendData(0x10); TM_ILI9341_SendCommand(ILI9341_VCOM1); TM_ILI9341_SendData(0x3E); TM_ILI9341_SendData(0x28); TM_ILI9341_SendCommand(ILI9341_VCOM2); TM_ILI9341_SendData(0x86); TM_ILI9341_SendCommand(ILI9341_MAC); TM_ILI9341_SendData(0x48); TM_ILI9341_SendCommand(ILI9341_PIXEL_FORMAT); TM_ILI9341_SendData(0x55); TM_ILI9341_SendCommand(ILI9341_FRC); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x18); TM_ILI9341_SendCommand(ILI9341_DFC); TM_ILI9341_SendData(0x08); TM_ILI9341_SendData(0x82); TM_ILI9341_SendData(0x27); TM_ILI9341_SendCommand(ILI9341_3GAMMA_EN); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_COLUMN_ADDR); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0xEF); TM_ILI9341_SendCommand(ILI9341_PAGE_ADDR); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x01); TM_ILI9341_SendData(0x3F); TM_ILI9341_SendCommand(ILI9341_GAMMA); TM_ILI9341_SendData(0x01); TM_ILI9341_SendCommand(ILI9341_PGAMMA); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendData(0x31); TM_ILI9341_SendData(0x2B); TM_ILI9341_SendData(0x0C); TM_ILI9341_SendData(0x0E); TM_ILI9341_SendData(0x08); TM_ILI9341_SendData(0x4E); TM_ILI9341_SendData(0xF1); TM_ILI9341_SendData(0x37); TM_ILI9341_SendData(0x07); TM_ILI9341_SendData(0x10); TM_ILI9341_SendData(0x03); TM_ILI9341_SendData(0x0E); TM_ILI9341_SendData(0x09); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_NGAMMA); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x0E); TM_ILI9341_SendData(0x14); TM_ILI9341_SendData(0x03); TM_ILI9341_SendData(0x11); TM_ILI9341_SendData(0x07); TM_ILI9341_SendData(0x31); TM_ILI9341_SendData(0xC1); TM_ILI9341_SendData(0x48); TM_ILI9341_SendData(0x08); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendData(0x0C); TM_ILI9341_SendData(0x31); TM_ILI9341_SendData(0x36); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendCommand(ILI9341_SLEEP_OUT); TM_ILI9341_Delay(1000000); TM_ILI9341_SendCommand(ILI9341_DISPLAY_ON); TM_ILI9341_SendCommand(ILI9341_GRAM); taskEXIT_CRITICAL(); }
static void TM_LCD_INT_InitLCD(void) { #if defined(LCD_USE_STM32F429_DISCOVERY) /* CS high */ ILI9341_CS_SET; /* Init SPI */ TM_SPI_Init(ILI9341_SPI, ILI9341_SPI_PINS); /* Initialization sequence */ TM_ILI9341_SendCommand(0xCA); TM_ILI9341_SendData(0xC3); TM_ILI9341_SendData(0x08); TM_ILI9341_SendData(0x50); TM_ILI9341_SendCommand(ILI9341_POWERB); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0xC1); TM_ILI9341_SendData(0x30); TM_ILI9341_SendCommand(ILI9341_POWER_SEQ); TM_ILI9341_SendData(0x64); TM_ILI9341_SendData(0x03); TM_ILI9341_SendData(0x12); TM_ILI9341_SendData(0x81); TM_ILI9341_SendCommand(ILI9341_DTCA); TM_ILI9341_SendData(0x85); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x78); TM_ILI9341_SendCommand(ILI9341_POWERA); TM_ILI9341_SendData(0x39); TM_ILI9341_SendData(0x2C); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x34); TM_ILI9341_SendData(0x02); TM_ILI9341_SendCommand(ILI9341_PRC); TM_ILI9341_SendData(0x20); TM_ILI9341_SendCommand(ILI9341_DTCB); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_FRC); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x1B); TM_ILI9341_SendCommand(ILI9341_DFC); TM_ILI9341_SendData(0x0A); TM_ILI9341_SendData(0xA2); TM_ILI9341_SendCommand(ILI9341_POWER1); TM_ILI9341_SendData(0x10); TM_ILI9341_SendCommand(ILI9341_POWER2); TM_ILI9341_SendData(0x10); TM_ILI9341_SendCommand(ILI9341_VCOM1); TM_ILI9341_SendData(0x45); TM_ILI9341_SendData(0x15); TM_ILI9341_SendCommand(ILI9341_VCOM2); TM_ILI9341_SendData(0x90); TM_ILI9341_SendCommand(ILI9341_MAC); TM_ILI9341_SendData(0xC8); TM_ILI9341_SendCommand(ILI9341_3GAMMA_EN); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_RGB_INTERFACE); TM_ILI9341_SendData(0xC2); TM_ILI9341_SendCommand(ILI9341_DFC); TM_ILI9341_SendData(0x0A); TM_ILI9341_SendData(0xA7); TM_ILI9341_SendData(0x27); TM_ILI9341_SendData(0x04); TM_ILI9341_SendCommand(ILI9341_COLUMN_ADDR); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0xEF); TM_ILI9341_SendCommand(ILI9341_PAGE_ADDR); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x01); TM_ILI9341_SendData(0x3F); TM_ILI9341_SendCommand(ILI9341_INTERFACE); TM_ILI9341_SendData(0x01); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x06); TM_ILI9341_SendCommand(ILI9341_GRAM); TM_ILI9341_Delay(1000000); TM_ILI9341_SendCommand(ILI9341_GAMMA); TM_ILI9341_SendData(0x01); TM_ILI9341_SendCommand(ILI9341_PGAMMA); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendData(0x29); TM_ILI9341_SendData(0x24); TM_ILI9341_SendData(0x0C); TM_ILI9341_SendData(0x0E); TM_ILI9341_SendData(0x09); TM_ILI9341_SendData(0x4E); TM_ILI9341_SendData(0x78); TM_ILI9341_SendData(0x3C); TM_ILI9341_SendData(0x09); TM_ILI9341_SendData(0x13); TM_ILI9341_SendData(0x05); TM_ILI9341_SendData(0x17); TM_ILI9341_SendData(0x11); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_NGAMMA); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x16); TM_ILI9341_SendData(0x1B); TM_ILI9341_SendData(0x04); TM_ILI9341_SendData(0x11); TM_ILI9341_SendData(0x07); TM_ILI9341_SendData(0x31); TM_ILI9341_SendData(0x33); TM_ILI9341_SendData(0x42); TM_ILI9341_SendData(0x05); TM_ILI9341_SendData(0x0C); TM_ILI9341_SendData(0x0A); TM_ILI9341_SendData(0x28); TM_ILI9341_SendData(0x2F); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendCommand(ILI9341_SLEEP_OUT); TM_ILI9341_Delay(1000000); TM_ILI9341_SendCommand(ILI9341_DISPLAY_ON); TM_ILI9341_SendCommand(ILI9341_GRAM); #endif }
void TM_ILI9341_InitLCD(void) { TM_ILI9341_SendCommand(0xCA); TM_ILI9341_SendData(0xC3); TM_ILI9341_SendData(0x08); TM_ILI9341_SendData(0x50); TM_ILI9341_SendCommand(ILI9341_POWERB); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0xC1); TM_ILI9341_SendData(0x30); TM_ILI9341_SendCommand(ILI9341_POWER_SEQ); TM_ILI9341_SendData(0x64); TM_ILI9341_SendData(0x03); TM_ILI9341_SendData(0x12); TM_ILI9341_SendData(0x81); TM_ILI9341_SendCommand(ILI9341_DTCA); TM_ILI9341_SendData(0x85); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x78); TM_ILI9341_SendCommand(ILI9341_POWERA); TM_ILI9341_SendData(0x39); TM_ILI9341_SendData(0x2C); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x34); TM_ILI9341_SendData(0x02); TM_ILI9341_SendCommand(ILI9341_PRC); TM_ILI9341_SendData(0x20); TM_ILI9341_SendCommand(ILI9341_DTCB); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_FRC); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x1B); TM_ILI9341_SendCommand(ILI9341_DFC); TM_ILI9341_SendData(0x0A); TM_ILI9341_SendData(0xA2); TM_ILI9341_SendCommand(ILI9341_POWER1); TM_ILI9341_SendData(0x10); TM_ILI9341_SendCommand(ILI9341_POWER2); TM_ILI9341_SendData(0x10); TM_ILI9341_SendCommand(ILI9341_VCOM1); TM_ILI9341_SendData(0x45); TM_ILI9341_SendData(0x15); TM_ILI9341_SendCommand(ILI9341_VCOM2); TM_ILI9341_SendData(0x90); TM_ILI9341_SendCommand(ILI9341_MAC); TM_ILI9341_SendData(0xC8); TM_ILI9341_SendCommand(ILI9341_3GAMMA_EN); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_RGB_INTERFACE); TM_ILI9341_SendData(0xC2); TM_ILI9341_SendCommand(ILI9341_DFC); TM_ILI9341_SendData(0x0A); TM_ILI9341_SendData(0xA7); TM_ILI9341_SendData(0x27); TM_ILI9341_SendData(0x04); TM_ILI9341_SendCommand(ILI9341_COLUMN_ADDR); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0xEF); TM_ILI9341_SendCommand(ILI9341_PAGE_ADDR); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x01); TM_ILI9341_SendData(0x3F); TM_ILI9341_SendCommand(ILI9341_INTERFACE); TM_ILI9341_SendData(0x01); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x06); TM_ILI9341_SendCommand(ILI9341_GRAM); TM_ILI9341_Delay(1000000); TM_ILI9341_SendCommand(ILI9341_GAMMA); TM_ILI9341_SendData(0x01); TM_ILI9341_SendCommand(ILI9341_PGAMMA); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendData(0x29); TM_ILI9341_SendData(0x24); TM_ILI9341_SendData(0x0C); TM_ILI9341_SendData(0x0E); TM_ILI9341_SendData(0x09); TM_ILI9341_SendData(0x4E); TM_ILI9341_SendData(0x78); TM_ILI9341_SendData(0x3C); TM_ILI9341_SendData(0x09); TM_ILI9341_SendData(0x13); TM_ILI9341_SendData(0x05); TM_ILI9341_SendData(0x17); TM_ILI9341_SendData(0x11); TM_ILI9341_SendData(0x00); TM_ILI9341_SendCommand(ILI9341_NGAMMA); TM_ILI9341_SendData(0x00); TM_ILI9341_SendData(0x16); TM_ILI9341_SendData(0x1B); TM_ILI9341_SendData(0x04); TM_ILI9341_SendData(0x11); TM_ILI9341_SendData(0x07); TM_ILI9341_SendData(0x31); TM_ILI9341_SendData(0x33); TM_ILI9341_SendData(0x42); TM_ILI9341_SendData(0x05); TM_ILI9341_SendData(0x0C); TM_ILI9341_SendData(0x0A); TM_ILI9341_SendData(0x28); TM_ILI9341_SendData(0x2F); TM_ILI9341_SendData(0x0F); TM_ILI9341_SendCommand(ILI9341_SLEEP_OUT); TM_ILI9341_Delay(1000000); TM_ILI9341_SendCommand(ILI9341_DISPLAY_ON); TM_ILI9341_SendCommand(ILI9341_GRAM); }