/** * @file ili9488.h */ #ifndef ILI9844_H #define ILI9844_H #ifdef __cplusplus extern "C" { #endif /********************* * INCLUDES *********************/ #include #include #include "lvgl/lvgl.h" /********************* * DEFINES *********************/ #define DISP_BUF_SIZE (LV_HOR_RES_MAX * 40) #define ILI9488_DC CONFIG_LVGL_DISP_PIN_DC #define ILI9488_RST CONFIG_LVGL_DISP_PIN_RST #define ILI9488_BCKL CONFIG_LVGL_DISP_PIN_BCKL #define ILI9488_ENABLE_BACKLIGHT_CONTROL CONFIG_LVGL_ENABLE_BACKLIGHT_CONTROL #if CONFIG_LVGL_BACKLIGHT_ACTIVE_LVL #define ILI9488_BCKL_ACTIVE_LVL 1 #else #define ILI9488_BCKL_ACTIVE_LVL 0 #endif // if text/images are backwards, try setting this to 1 #define ILI9488_INVERT_DISPLAY CONFIG_LVGL_INVERT_DISPLAY /******************* * ILI9488 REGS *********************/ /* Level 1 Commands (from the display Datasheet) */ #define ILI9488_CMD_NOP 0x00 #define ILI9488_CMD_SOFTWARE_RESET 0x01 #define ILI9488_CMD_READ_DISP_ID 0x04 #define ILI9488_CMD_READ_ERROR_DSI 0x05 #define ILI9488_CMD_READ_DISP_STATUS 0x09 #define ILI9488_CMD_READ_DISP_POWER_MODE 0x0A #define ILI9488_CMD_READ_DISP_MADCTRL 0x0B #define ILI9488_CMD_READ_DISP_PIXEL_FORMAT 0x0C #define ILI9488_CMD_READ_DISP_IMAGE_MODE 0x0D #define ILI9488_CMD_READ_DISP_SIGNAL_MODE 0x0E #define ILI9488_CMD_READ_DISP_SELF_DIAGNOSTIC 0x0F #define ILI9488_CMD_ENTER_SLEEP_MODE 0x10 #define ILI9488_CMD_SLEEP_OUT 0x11 #define ILI9488_CMD_PARTIAL_MODE_ON 0x12 #define ILI9488_CMD_NORMAL_DISP_MODE_ON 0x13 #define ILI9488_CMD_DISP_INVERSION_OFF 0x20 #define ILI9488_CMD_DISP_INVERSION_ON 0x21 #define ILI9488_CMD_PIXEL_OFF 0x22 #define ILI9488_CMD_PIXEL_ON 0x23 #define ILI9488_CMD_DISPLAY_OFF 0x28 #define ILI9488_CMD_DISPLAY_ON 0x29 #define ILI9488_CMD_COLUMN_ADDRESS_SET 0x2A #define ILI9488_CMD_PAGE_ADDRESS_SET 0x2B #define ILI9488_CMD_MEMORY_WRITE 0x2C #define ILI9488_CMD_MEMORY_READ 0x2E #define ILI9488_CMD_PARTIAL_AREA 0x30 #define ILI9488_CMD_VERT_SCROLL_DEFINITION 0x33 #define ILI9488_CMD_TEARING_EFFECT_LINE_OFF 0x34 #define ILI9488_CMD_TEARING_EFFECT_LINE_ON 0x35 #define ILI9488_CMD_MEMORY_ACCESS_CONTROL 0x36 #define ILI9488_CMD_VERT_SCROLL_START_ADDRESS 0x37 #define ILI9488_CMD_IDLE_MODE_OFF 0x38 #define ILI9488_CMD_IDLE_MODE_ON 0x39 #define ILI9488_CMD_COLMOD_PIXEL_FORMAT_SET 0x3A #define ILI9488_CMD_WRITE_MEMORY_CONTINUE 0x3C #define ILI9488_CMD_READ_MEMORY_CONTINUE 0x3E #define ILI9488_CMD_SET_TEAR_SCANLINE 0x44 #define ILI9488_CMD_GET_SCANLINE 0x45 #define ILI9488_CMD_WRITE_DISPLAY_BRIGHTNESS 0x51 #define ILI9488_CMD_READ_DISPLAY_BRIGHTNESS 0x52 #define ILI9488_CMD_WRITE_CTRL_DISPLAY 0x53 #define ILI9488_CMD_READ_CTRL_DISPLAY 0x54 #define ILI9488_CMD_WRITE_CONTENT_ADAPT_BRIGHTNESS 0x55 #define ILI9488_CMD_READ_CONTENT_ADAPT_BRIGHTNESS 0x56 #define ILI9488_CMD_WRITE_MIN_CAB_LEVEL 0x5E #define ILI9488_CMD_READ_MIN_CAB_LEVEL 0x5F #define ILI9488_CMD_READ_ABC_SELF_DIAG_RES 0x68 #define ILI9488_CMD_READ_ID1 0xDA #define ILI9488_CMD_READ_ID2 0xDB #define ILI9488_CMD_READ_ID3 0xDC /* Level 2 Commands (from the display Datasheet) */ #define ILI9488_CMD_INTERFACE_MODE_CONTROL 0xB0 #define ILI9488_CMD_FRAME_RATE_CONTROL_NORMAL 0xB1 #define ILI9488_CMD_FRAME_RATE_CONTROL_IDLE_8COLOR 0xB2 #define ILI9488_CMD_FRAME_RATE_CONTROL_PARTIAL 0xB3 #define ILI9488_CMD_DISPLAY_INVERSION_CONTROL 0xB4 #define ILI9488_CMD_BLANKING_PORCH_CONTROL 0xB5 #define ILI9488_CMD_DISPLAY_FUNCTION_CONTROL 0xB6 #define ILI9488_CMD_ENTRY_MODE_SET 0xB7 #define ILI9488_CMD_BACKLIGHT_CONTROL_1 0xB9 #define ILI9488_CMD_BACKLIGHT_CONTROL_2 0xBA #define ILI9488_CMD_HS_LANES_CONTROL 0xBE #define ILI9488_CMD_POWER_CONTROL_1 0xC0 #define ILI9488_CMD_POWER_CONTROL_2 0xC1 #define ILI9488_CMD_POWER_CONTROL_NORMAL_3 0xC2 #define ILI9488_CMD_POWER_CONTROL_IDEL_4 0xC3 #define ILI9488_CMD_POWER_CONTROL_PARTIAL_5 0xC4 #define ILI9488_CMD_VCOM_CONTROL_1 0xC5 #define ILI9488_CMD_CABC_CONTROL_1 0xC6 #define ILI9488_CMD_CABC_CONTROL_2 0xC8 #define ILI9488_CMD_CABC_CONTROL_3 0xC9 #define ILI9488_CMD_CABC_CONTROL_4 0xCA #define ILI9488_CMD_CABC_CONTROL_5 0xCB #define ILI9488_CMD_CABC_CONTROL_6 0xCC #define ILI9488_CMD_CABC_CONTROL_7 0xCD #define ILI9488_CMD_CABC_CONTROL_8 0xCE #define ILI9488_CMD_CABC_CONTROL_9 0xCF #define ILI9488_CMD_NVMEM_WRITE 0xD0 #define ILI9488_CMD_NVMEM_PROTECTION_KEY 0xD1 #define ILI9488_CMD_NVMEM_STATUS_READ 0xD2 #define ILI9488_CMD_READ_ID4 0xD3 #define ILI9488_CMD_ADJUST_CONTROL_1 0xD7 #define ILI9488_CMD_READ_ID_VERSION 0xD8 #define ILI9488_CMD_POSITIVE_GAMMA_CORRECTION 0xE0 #define ILI9488_CMD_NEGATIVE_GAMMA_CORRECTION 0xE1 #define ILI9488_CMD_DIGITAL_GAMMA_CONTROL_1 0xE2 #define ILI9488_CMD_DIGITAL_GAMMA_CONTROL_2 0xE3 #define ILI9488_CMD_SET_IMAGE_FUNCTION 0xE9 #define ILI9488_CMD_ADJUST_CONTROL_2 0xF2 #define ILI9488_CMD_ADJUST_CONTROL_3 0xF7 #define ILI9488_CMD_ADJUST_CONTROL_4 0xF8 #define ILI9488_CMD_ADJUST_CONTROL_5 0xF9 #define ILI9488_CMD_SPI_READ_SETTINGS 0xFB #define ILI9488_CMD_ADJUST_CONTROL_6 0xFC #define ILI9488_CMD_ADJUST_CONTROL_7 0xFF /********************** * TYPEDEFS **********************/ typedef struct { uint8_t red; uint8_t green; uint8_t blue; } lv_color_custom_t; /********************** * GLOBAL PROTOTYPES **********************/ void ili9488_init(void); void ili9488_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map); void ili9488_enable_backlight(bool backlight); /********************** * MACROS **********************/ #ifdef __cplusplus } /* extern "C" */ #endif #endif /*ILI9488_H*/