ESP32 LVGL移植和使用

获取esp32的 lvgl工程:https://docs.lvgl.io/latest/en/html/get-started/espressif.html

或:https://github.com/lvgl/lv_port_esp32(我是在这里下载的)

lv_port_esp32下载下来后,会发现里面的components里面的内容是空的

分别将在jgit里面的lv_demos下的内容复制进入lv_example钟,lvgl的内容复制到lvgl文件下,lvgl_esp32_drivers复制到lvgl_esp32_drivers。

这样,lvgl的工程就创建好了,接着就是在esp-idf下编译。

1.修改变量,在命令行输入sudo vim  /etc/profile,修改成如下

2.切到esp32-lvgl目录下,make menuconfig配置成自己要用的触摸和现实屏。

3.make,出现如下界面编译成功。

编译成功之后,替换驱动

根据自己的现实屏选择驱动芯片,我这边是st7789s,首先在命令行输入make menuconfig

1.

2.我的屏幕大小是240*240,其他默认

3.

4.

5.

6.(重)

以上,配置完成,修改程序。

工程是直接编译\esp32\lv_port_esp32-master\lv_port_esp32-master\main目录下的mian,例子打开lv_demo_widgets();可直接修改F:\esp32\lv_port_esp32-master\lv_port_esp32-master\components\lv_examples\lv_ex_conf.h下的

由于在配置中配置了st7789s,所以程序回直接调用st7789驱动程序,打开st7789,根据芯片的实际驱动程序进行修改。

1.替换驱动

将这些驱动换成自己的

替换刷图程序

其中offsetx1、offsetx2、offsety1、offsety2分别是x、y的起始坐标终止坐标一般是刷一块。

Write(offsetx1,offsetx2,offsety1,offsety2);//这个是要将x、y要写的区域传给屏幕

st7789_send_data((void*)color_map, size *2);//color_map需要写入屏幕的数据,size *2一次写入的个数。

修改之后,下载发现显示不对,采集波形

数了下clk,发现高电平只有7个,而我的芯片是要在高电平的时候读取数据的,再采集了一个波形后发现(修改了发送数据后采集,图片忘保存了),目前是低电平读取。所以判断是极性问题,修改spi的极性。

打开\esp32\lv_port_esp32-master\lv_port_esp32-master\components\lvgl_esp32_drivers\lvgl_tft\Disp_spi.c

根据https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/api-reference/peripherals/spi_master.html手册,

根据实际修改SPI_TFT_SPI_MODE

结束!

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值