lv_lcd_generic_mipi.h
Generic driver for controllers adhering to the MIPI DBI/DCS specification
Works with:
ST7735 ST7789 ST7796 ILI9341 ILI9488 (NOTE: in SPI mode ILI9488 only supports RGB666 mode, which is currently not supported)
any probably many more
Defines
-
LV_LCD_CMD_NOP
-
LV_LCD_CMD_SOFT_RESET
-
LV_LCD_CMD_GET_POWER_MODE
-
LV_LCD_CMD_GET_ADDRESS_MODE
-
LV_LCD_CMD_GET_PIXEL_FORMAT
-
LV_LCD_CMD_GET_DISPLAY_MODE
-
LV_LCD_CMD_GET_SIGNAL_MODE
-
LV_LCD_CMD_GET_DIAGNOSTIC_RESULT
-
LV_LCD_CMD_ENTER_SLEEP_MODE
-
LV_LCD_CMD_EXIT_SLEEP_MODE
-
LV_LCD_CMD_ENTER_PARTIAL_MODE
-
LV_LCD_CMD_ENTER_NORMAL_MODE
-
LV_LCD_CMD_EXIT_INVERT_MODE
-
LV_LCD_CMD_ENTER_INVERT_MODE
-
LV_LCD_CMD_SET_GAMMA_CURVE
-
LV_LCD_CMD_SET_DISPLAY_OFF
-
LV_LCD_CMD_SET_DISPLAY_ON
-
LV_LCD_CMD_SET_COLUMN_ADDRESS
-
LV_LCD_CMD_SET_PAGE_ADDRESS
-
LV_LCD_CMD_WRITE_MEMORY_START
-
LV_LCD_CMD_READ_MEMORY_START
-
LV_LCD_CMD_SET_PARTIAL_ROWS
-
LV_LCD_CMD_SET_PARTIAL_COLUMNS
-
LV_LCD_CMD_SET_SCROLL_AREA
-
LV_LCD_CMD_SET_TEAR_OFF
-
LV_LCD_CMD_SET_TEAR_ON
-
LV_LCD_CMD_SET_ADDRESS_MODE
-
LV_LCD_CMD_SET_SCROLL_START
-
LV_LCD_CMD_EXIT_IDLE_MODE
-
LV_LCD_CMD_ENTER_IDLE_MODE
-
LV_LCD_CMD_SET_PIXEL_FORMAT
-
LV_LCD_CMD_WRITE_MEMORY_CONTINUE
-
LV_LCD_CMD_READ_MEMORY_CONTINUE
-
LV_LCD_CMD_SET_TEAR_SCANLINE
-
LV_LCD_CMD_GET_SCANLINE
-
LV_LCD_CMD_READ_DDB_CONTINUE
-
LV_LCD_CMD_READ_DDB_START
-
LV_LCD_MASK_FLIP_VERTICAL
-
LV_LCD_MASK_FLIP_HORIZONTAL
-
LV_LCD_MASK_DATA_LATCH_DATA_ORDER
-
LV_LCD_MASK_RGB_ORDER
-
LV_LCD_MASK_LINE_ADDRESS_ORDER
-
LV_LCD_MASK_PAGE_COLUMN_ORDER
-
LV_LCD_MASK_COLUMN_ADDRESS_ORDER
-
LV_LCD_MASK_PAGE_ADDRESS_ORDER
-
LV_LCD_BIT_FLIP_VERTICAL__NOT_FLIPPED
-
LV_LCD_BIT_FLIP_VERTICAL__FLIPPED
-
LV_LCD_BIT_FLIP_HORIZONTAL__NOT_FLIPPED
-
LV_LCD_BIT_FLIP_HORIZONTAL__FLIPPED
-
LV_LCD_BIT_DATA_LATCH_DATA_ORDER__LTOR
-
LV_LCD_BIT_DATA_LATCH_DATA_ORDER__RTOL
-
LV_LCD_BIT_RGB_ORDER__RGB
-
LV_LCD_BIT_RGB_ORDER__BGR
-
LV_LCD_BIT_LINE_ADDRESS_ORDER__TTOB
-
LV_LCD_BIT_LINE_ADDRESS_ORDER__BTOT
-
LV_LCD_BIT_PAGE_COLUMN_ORDER__NORMAL
-
LV_LCD_BIT_PAGE_COLUMN_ORDER__REVERSE
-
LV_LCD_BIT_COLUMN_ADDRESS_ORDER__LTOR
-
LV_LCD_BIT_COLUMN_ADDRESS_ORDER__RTOL
-
LV_LCD_BIT_PAGE_ADDRESS_ORDER__TTOB
-
LV_LCD_BIT_PAGE_ADDRESS_ORDER__BTOT
-
LV_LCD_GAMMA_2_2
-
LV_LCD_GAMMA_1_8
-
LV_LCD_GAMMA_2_5
-
LV_LCD_GAMMA_1_0
-
LV_LCD_PIXEL_FORMAT_RGB565
-
LV_LCD_PIXEL_FORMAT_RGB666
-
LV_LCD_FLAG_NONE
-
LV_LCD_FLAG_MIRROR_X
-
LV_LCD_FLAG_MIRROR_Y
-
LV_LCD_FLAG_BGR
-
LV_LCD_FLAG_RGB666
-
LV_LCD_CMD_DELAY_MS
-
LV_LCD_CMD_EOF
Typedefs
-
typedef uint32_t lv_lcd_flag_t
Configuration flags for lv_lcd_xxx_create()
-
typedef void (*lv_lcd_send_cmd_cb_t)(lv_display_t *disp, const uint8_t *cmd, size_t cmd_size, const uint8_t *param, size_t param_size)
Prototype of a platform-dependent callback to transfer commands and data to the LCD controller.
- Param disp:
display object
- Param cmd:
command buffer (can handle 16 bit commands as well)
- Param cmd_size:
number of bytes of the command
- Param param:
parameter buffer
- Param param_size:
number of bytes of the parameters
-
typedef void (*lv_lcd_send_color_cb_t)(lv_display_t *disp, const uint8_t *cmd, size_t cmd_size, uint8_t *param, size_t param_size)
Prototype of a platform-dependent callback to transfer pixel data to the LCD controller.
- Param disp:
display object
- Param cmd:
command buffer (can handle 16 bit commands as well)
- Param cmd_size:
number of bytes of the command
- Param param:
parameter buffer
- Param param_size:
number of bytes of the parameters
Functions
-
lv_display_t *lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags, lv_lcd_send_cmd_cb_t send_cmd_cb, lv_lcd_send_color_cb_t send_color_cb)
Create a MIPI DCS compatible LCD display
- Parameters:
hor_res – horizontal resolution
ver_res – vertical resolution
flags – default configuration settings (mirror, RGB ordering, etc.)
send_cmd – platform-dependent function to send a command to the LCD controller (usually uses polling transfer)
send_color – platform-dependent function to send pixel data to the LCD controller (usually uses DMA transfer: must implement a 'ready' callback)
- Returns:
pointer to the created display
-
void lv_lcd_generic_mipi_set_gap(lv_display_t *disp, uint16_t x, uint16_t y)
Set gap, i.e., the offset of the (0,0) pixel in the VRAM
- Parameters:
disp – display object
x – x offset
y – y offset
-
void lv_lcd_generic_mipi_set_invert(lv_display_t *disp, bool invert)
Set color inversion
- Parameters:
disp – display object
invert – false: normal, true: invert
-
void lv_lcd_generic_mipi_set_address_mode(lv_display_t *disp, bool mirror_x, bool mirror_y, bool swap_xy, bool bgr)
Set address mode
- Parameters:
disp – display object
mirror_x – horizontal mirror (false: normal, true: mirrored)
mirror_y – vertical mirror (false: normal, true: mirrored)
swap_xy – swap axes (false: normal, true: swap)
bgr – RGB/BGR order (false: RGB, true: BGR)
-
void lv_lcd_generic_mipi_set_gamma_curve(lv_display_t *disp, uint8_t gamma)
Set gamma curve
- Parameters:
disp – display object
gamma – gamma curve
-
void lv_lcd_generic_mipi_send_cmd_list(lv_display_t *disp, const uint8_t *cmd_list)
Send list of commands.
- Parameters:
disp – display object
cmd_list – controller and panel-specific commands
-
struct lv_lcd_generic_mipi_driver_t
- #include <lv_lcd_generic_mipi.h>
Generic MIPI compatible LCD driver
Public Members
-
lv_display_t *disp
-
lv_lcd_send_cmd_cb_t send_cmd
-
lv_lcd_send_color_cb_t send_color
-
uint16_t x_gap
-
uint16_t y_gap
-
uint8_t madctl_reg
-
uint8_t colmod_reg
-
bool mirror_x
-
bool mirror_y
-
bool swap_xy
-
lv_display_t *disp