1.创建工程

开始准备开发 ESP32 应用程序。可以从 ESP-IDF中 examples目录下的 get-started/hello_world 工程开始。
将 get-started/hello_world 复制至您本地的 ~/esp 目录下:
cp -r $IDF_PATH/examples/get-started/hello_world .

注意:ESP-IDF 编译系统不支持带有空格的路径。

2.连接设备

通常,串口在不同操作系统下显示的名称有所不同:
Windows 操作系统: COM1 等
Linux 操作系统: 以 /dev/tty 开始
MacOS 操作系统: 以 /dev/cu. 开始

先使用ls /dev/tty* 命令查看linux下的所有端口号

esp32 lvgl切换图片 esp32linux_嵌入式


然后将设备连接到虚拟机。

esp32 lvgl切换图片 esp32linux_串口_02


使用ls /dev/tty* 命令查看linux下的所有端口号

esp32 lvgl切换图片 esp32linux_linux_03


多出来的那个就是新连接的板子端口号。

3.在 Linux 中添加用户到 dialout

当前登录用户应当可以通过 USB 对串口进行读写操作。在多数 Linux 版本中,你都可以通过以下命令,将用户添加到 dialout 组,来获许读写权限:
sudo usermod -a -G dialout $USER

4.确认串口连接

使用串口终端程序,验证串口连接是否可用。我用的是 PuTTY SSH Client, PuTTY SSH Client 既可用于 Windows 也可用于 Linux。你也可以使用其他串口程序并设置如下的通信参数。

安装puttyt:apt-get install putty

直接运行指令putty

esp32 lvgl切换图片 esp32linux_串口_04


运行终端,配置串口:波特率 = 115200,数据位 = 8,停止位 = 1,奇偶校验 = N。Linux 中配置串口和上述通信参数(如 115200-8-1-N)。注意,这里一定要选择在上述步骤中确认的串口进行配置。

esp32 lvgl切换图片 esp32linux_linux_05


esp32 lvgl切换图片 esp32linux_嵌入式_06


点击 “Open” 打开后弹出新的界面,如下所示:

esp32 lvgl切换图片 esp32linux_esp32 lvgl切换图片_07

5.配置

请进入 第1步:开始创建工程中提到的hello_world目录,并运行工程配置工具 menuconfig。

make menuconfig

如果之前的步骤都正确,则会显示下面的菜单:

esp32 lvgl切换图片 esp32linux_linux_08


menuconfig 工具的常见操作见下。

上下箭头:移动

回车:进入子菜单

ESC 键:返回上级菜单或退出

英文问号:调出帮助菜单(退出帮助菜单,请按回车键)。

空格或 Y 键:选择 [] 配置选项;N 键:禁用 [] 配置选项

英文问号 (查询配置选项):调出有关该选项的帮助菜单

/ 键:寻找配置工程

6.编译工程

使用以下命令,编译烧录工程::

make

运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。

esp32 lvgl切换图片 esp32linux_linux_09


如果一切正常,编译完成后将生成 .bin 文件。

7.烧录到设备

使用以下命令,将刚刚生成的二进制文件烧录至您的 ESP32 开发板:

make flash

esp32 lvgl切换图片 esp32linux_linux_10

8.监视器

您可以使用 make monitor 命令,监视 “hello_world” 的运行情况。

运行该命令后,IDF 监视器 应用程序将启动

使用快捷键 Ctrl+],退出 IDF 监视器。

esp32 lvgl切换图片 esp32linux_串口_11


如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板采用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振。

解决方法:

(1)退出监视器。

(2)打开 menuconfig。

(3)进入 Component config –> ESP32-specific –> Main XTAL frequency 进行配置,将 CONFIG_ESP32_XTAL_FREQ_SEL 设置为 26 MHz。

(4)然后,请重新 编译和烧录 应用程序。