esp_lcd_panel_io_tx_param(io, 0xe7, (uint8_t[]){0x00,0x10}, 2); 再有修改画图函数 static esp_err_t panel_st7789_draw_bitmap(esp_lcd_panel_t *panel, int x_start, int y_start, int x_end, int y_end, const void *color_data) 保留以下 st7789_panel_t *st7789 = __containe...
ESP_RETURN_ON_ERROR(esp_lcd_panel_io_tx_param(io, (LCD_CMD_RASET << 8) + 1, (uint16_t[]) { y_start & 0xFF, }, 2), TAG, "io tx param failed"); ESP_RETURN_ON_ERROR(esp_lcd_panel_io_tx_param(io, (LCD_CMD_RASET << 8) + 2, (uint16_t[]) { ...
void lcd_init_reg(const esp_lcd_panel_io_handle_t io, const lcd_panel_reg_t reg_table[]) { uint8_t i = 0; while(reg_table[i].len != 0xFF) { esp_lcd_panel_io_tx_param(io, reg_table[i].reg, reg_table[i].val, reg_table[i].len); i ++; } } 为了最大化提升兼容性,...
使用的是\examples\peripherals\lcd\lvgl 例程,因为需要使用的8080并口屏幕的驱动IC不支持,所以自己去修改编写驱动,在编写过程中发现这么一个问题,向屏幕IC中写入寄存器指令需要使用到 esp_lcd_panel_io_tx_param 函数,正常使用这是没有问题的,但是在一些特殊情况中比如我这个屏幕,需要向指令为0x2D的地址中填充192个...
通过创建接口设备可以获取数据类型为 esp_lcd_panel_io_handle_t 的句柄,然后能够使用以下 接口通用 APIs 给LCD 的驱动 IC 发送 命令 和图像数据: esp_lcd_panel_io_tx_param():用于发送单个 LCD 的命令及配套参数,其内部通过函数 spi_device_polling_transmit() 实现数据传输,使用该函数会等待数据传输完毕后...
因为在这种情况下我们不需要安装任何IO接口驱动程序,所以这使得驱动程序的安装步骤极大简化了。接下来我们...
esp_err_t esp_lcd_panel_io_tx_color(esp_lcd_panel_io_handle_t io, int lcd_cmd, const void *color, size_t color_size); /** * @brief Destory LCD panel IO handle (deinitialize panel and free all corresponding resource) * * @param[in] io LCD panel IO handle, which is created...
,用于控制LCD的发送;一个发送异步FIFO(Async Tx FIFO),用于与外部设备交互,发送数据;一个LCD_...
目前I80 的接口都位于 ESP-IDF 目录下 components/esp_lcd/include/esp_lcd_panel_io.h 文件中,包含以下几类: 1. 总线相关:esp_lcd_new_i80_bus()、esp_lcd_del_i80_bus() 2. LCD 相关:esp_lcd_new_panel_io_i80()、esp_lcd_panel_io_tx_param()、esp_lcd_panel_io_tx_color()、esp_lcd_pane...
lcd structuretypedef struct mp_esp32s3_i80lcd_obj_t{mp_obj_base_t base;uint16_t width;uint16_t height;mp_obj_t rd;mp_obj_t flushdown_callback;esp_lcd_i80_bus_handle_t i80_bus;esp_lcd_i80_bus_config_t bus_config;esp_lcd_panel_io_handle_t io_handle;esp_lcd_panel_io_i80_...