| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> ESP32 LVGL_V8 最快移植攻略 -> 正文阅读 |
|
[嵌入式]ESP32 LVGL_V8 最快移植攻略 |
ESP32 LVGL_V8 最快移植攻略系列文章地址:ESP32 LVGLV7最快移植攻略 此篇为发稿前最新的移植,如需要Lvgl V7 可参考上文。 软件环境
硬件环境
ESP32-S3-12k开发板介绍ESP-S3-12K-Kit 开发板是安信可针对 ESP-S3-12K 模组而设计的一款核心开发板, 该开发板延续了 NodeMCU 开发板的经典设计,引出全部 I/O 至两侧的排针,开发者可 以根据自己的需求连接外设。使用面包板进行开发和调试时,两侧的 2.54mm 间距排针 可以使操作更加简单方便。 开发板的参数可以看到安信可ESP32-S3-12k开发板不仅板载了8M Byte的SPI Flash更搭配了8M Byte的Psram。 ESP32S3的SPIESP32-S3 共有四个 SPI(SPI0,SPI1,SPI2 和 SPI3)。SPI0 和 SPI1 可以配置成 SPI 存储器模式,SPI2 和 SPI3 可以配置成通用 SPI 模式。 SPI 存储器 (SPI Memory) 模式 SPI 存储器模式(SPI0 和 SPI1)用于连接 SPI 接口的外部存储器。SPI 存储器模式下数据传输长度以字节 为单位,最高支持八线 SDR/DDR(单数据采样沿/双数据采样沿)读写操作。时钟频率可配置,最高支持 OPI 120 MHz SDR/DDR 模式。 SPI2 通用 SPI (GP-SPI) 模式 SPI2 既可以配置成主机模式,又可以配置成从机模式。主机模式支持双线全双工和单线、双线、四线或 八线半双工通信;从机模式支持双线全双工和单线、双线或四线半双工通信。通用 SPI 的主机时钟频率可 配置;数据传输长度以字节为单位;时钟极性 (CPOL) 和相位 (CPHA) 可配置;可连接 DMA 通道。 SPI3 通用 SPI (GP-SPI) 模式 SPI3 既可以配置成主机模式,又可以配置成从机模式,具有双线全双工和单线、双线或四线半双工通信 功能,仅支持 SDR 读写操作。通用 SPI 的主机时钟频率可配置;数据传输长度以字节为单位;时钟极性 (CPOL) 和相位 (CPHA) 可配置;可连接 DMA 通道。 通常情况下,ESP32-S3 和 flash 芯片的数据端口连接关系是: 在安信可的模块中使用的是四线SPI,具体占用的引脚是: 对应的是GPIO是: 使用的时候需要注意,不能使用这几个引脚。当然能开发板上并没有引出这几个引脚,在一定程度上也做到了规避。 LVGL_V8移植指北首先是源代码的下载: 你可以通过下载我移植好的代码直接使用或者从github上下载最新的代码(当然截至文章发布我的也是最新的代码)。 直接使用我的代码: git的方式下载代码: 首先下载最新的LVGL V8,直接下载master分支即可:
再下载最新的适用于ESP32的驱动:
下载完成后可以看到文件夹下两个项目: 然后我们再来新建一个ESP32项目,这里为了简单,就新建一个blink项目: 选择blink项目,在合适的位置创建项目: 找到你创建的项目: 在项目目录下创建一个components文件夹: 将刚刚下载的代码放入项目文件夹: 再使用VSCODE打开项目文件夹: 你可以看到项目文件夹位置多出来的lvgl和驱动: 接下来我们来修改代码和配置项目: 首先是修改芯片型号: 点击下图位置 选择ESP32-S3: 再打开配置项目: 找到LVGL配置项目,如果你的配置项目没有LVGL请重新打开VSCode项目: 打开以后可以看见四个关键配置项目: 再点击对应驱动的配置项: 我这里使用的是ST7789V,所以我这里下边出现的是对应驱动的配置项目: 打开以后需要配置的脚如下: 注意这些是默认的脚,我们需要进行一些修改来适配S3: 因为ST7735S、ST7789在接收16位颜色值时是高位在前的16位短整型。而ESP32因为是小端模式,DMA在发送16位数据时,会先发低8位字节再发送高8位字节,这就造成了数据不一至!所以需要勾选一下,勾选后,就是调换了一下。如果你勾选了此选项造成颜色不对你可以不勾选。 如果你看到的不是白底黑字,而是颜色反过来的,你可以勾选这个选项来矫正颜色。 修改完成后配置项目基本就完成了。 接下来修改代码: 首先就是在 lvgl_helpers.h 的下面添加几个宏定义:
再来修改一下lvgl_helpers.c的这个位置的代码: 将源代码修改成 可以在这里先编一下,看一下会不会报错,如果没有报错就开始写lvgl的代码。 当然初始化LVGL的代码我已经写好了,就在项目里面,你可以直接Download下来使用: 下载后找到这两个文件放在main目录下: 他的路径就在:./main/… 单单添加文件并不能让他们参加编译我们还需要手动添加一下: 打开main目录下的CMAKELists,添加如下内容: 回到main.c: 添加头文件支持: 修改app_main函数,为其添加lvgl初始化线程:
再次编译,下载后就可以看到效果: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:26:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |