当前位置: 首页 > web >正文

ESP32-S3 学习笔记(2)-屏幕驱动和lvgl移植

首先展示成果

想要用这个屏幕,需要做两个事情:驱动、lvgl移植

1、ST7789驱动

我买的这个板子时由ST7789驱动芯片支持的,因此要想控制这个屏幕,我需要写驱动。

何为驱动:

可以这样理解

我们编写的程序可以控制mcu,即sep32,那我们如何控制屏幕显示内容呢?实际上,整个屏幕模块内部也有一个程序,可以显示,只是这个程序是产品出厂前厂商烧录进去的,为了方便控制,厂商留了一个接口,即st7789,我们可以通过操作st7789来间接的操作屏幕的显示行为。那么如果我们写出了一套通用的操作ST7789接口程序,就可以说写了一个屏幕驱动。

如何操作st7789,需要通过某种协议传输命令和数据,它支持spi或8080控制,此处使用spi来控制。

如何控制

找到引脚

因为esp32所有的引脚都支持复用,所以不需要关心esp的引脚。观察到,屏幕上由引脚

ST7789作用esp32
GND接地
VCC3.3v
SCL时钟引脚-------CLK12
SDA数据引脚-----MOSI11
RES复位10
DC9
CS片选8
BLK背光45

之所以没有miso,是因为esp不需要接收lcd的信息。

实现驱动

1、初始化
void st7789_driver_hw_init(lcd_flush_done_cb cb,void* cb_param)
{spi_bus_config_t spi_bus_cfg = {0};spi_bus_cfg.mosi_io_num = LCD_MOSI_GPIO;spi_bus_cfg.miso_io_num = LCD_GPIO_NC;spi_bus_cfg.sclk_io_num = LCD_CLK_GPIO;spi_bus_cfg.quadwp_io_num = LCD_GPIO_NC;spi_bus_cfg.quadhd_io_num = LCD_GPIO_NC;spi_bus_cfg.max_transfer_sz = LCD_WIDTH * 40 * sizeof(uint16_t);spi_bus_cfg.flags = SPICOMMON_BUSFLAG_MASTER;spi_bus_initialize(LCD_SPI_HOST, &spi_bus_cfg, SPI_DMA_CH_AUTO);// blkgpio_config_t bl_gpio_cfg ={.pull_up_en = GPIO_PULLUP_DISABLE,     // 禁止上拉.pull_
http://www.xdnf.cn/news/8933.html

相关文章:

  • 【MySQL系列】数据库死锁问题
  • TDK PC95铁氧体隔磁片的技术要求
  • uniapp中懒加载图片组件的封装与应用
  • 【Qt】QCustomPlot相关
  • 网络段、主机段、子网掩码
  • Python 学习日记 day26
  • 蓝桥杯178 全球变暖
  • 【深度解读】三一重工的数字化转型(下篇2)
  • 大数据学习(118)-SQL面试问题总结
  • @Valid和@Vlidated的区别
  • Windows安装Docker Desktop开启 Kubenetes制作并部署本地镜像
  • Java 装饰器模式(Decorator)详解​
  • AI练习:指纹
  • [C语言实战]C语言文件操作实战:打造高效日志系统(六)
  • RMAN恢复报错RMAN-06555及其解决方案
  • STM32F103_Bootloader程序开发02 - Bootloader程序架构与STM32F103ZET6的Flash内存规划
  • idea和cursor快速切换
  • 【Linux】定时任务 Crontab 与时间同步服务器
  • 基于多头注意力时间卷积网络(MATCN)的虚拟电厂短期功率预测模型
  • 『uniapp』自己实现手动图片列表滑动 + 图片手势缩放+ 图片点击缩放(详细图文注释)
  • 分布式消息中间件设计与实现
  • Android自定义View学习总结
  • 【机器人】复现 Embodied-Reasoner 具身推理 | 具身任务 深度推理模型 多模态场景 长远决策 多轮互动
  • Python Day33
  • GO 语言中变量的声明
  • Python中字典(dict)知识详解应用
  • 非接触式互连:当串扰是您的朋友时
  • NumPy 数组属性
  • 英语科研词汇现象及语言演变探讨
  • Rephrase and Respond :让大语言模型为自己提出更优的问题