参考:
与 ESP32-S3 创建串口连接
快速入门
乐鑫ESP-IDF安装 VS Code ESP-IDF安装 ESP32的编译器安装
上周末上TB下单买了块ESP32-S3的开发板,断断续续的进行玩了三天,在环境搭建的过程中碰到了一些麻烦,周二晚才调通,本文主要基于调试的记录。
蓝色USB用于usb下载,黄色USB用于usb bridge串口下载。本文使用的是后者。
本文的环境主要是通过vscode安装的,所以无需提前下载ESP-IDF
因为从ESP-IDF的v4.3版本开始要求python版本不低于v3.6,而ubuntu 16.04默认的python3版本是v3.5,因此这里使用的是ubuntu 20.04。
并且由于后续的操作中随时可能因为安装失败,而想要回到历史快照中,所以我们可手动对虚拟机进行克隆。
通过vmware安装ubuntu 20.04,虚拟机命名为ubuntu_2004,并通过以下指令修改软件源:
sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
#替换软件源
sudo sed -i "s@http://.*ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
#更新软件源
sudo apt-get update
#更新本地软件包
sudo apt-get upgrade
注意:可能是同一个vmware下还安装了ubuntu 16.04的原因,vmware tools失效了(仅可以复制文字,无法复制文件,网上的解决办法试了一个遍,仅有通过vmware的共享文件夹能和主机进行有限制的文件共享),所以vmware需要选择:虚拟机设置-网络适配器-桥接,以便后面通过samba或者nfs之类的进行文件共享。
关闭上个虚拟机ubuntu 20.04,然后依次选择vmware菜单下的 虚拟机->管理->克隆->下一页
接着分别勾选“虚拟机中的当前状态”->“创建完整克隆”,并将新的虚拟机命名为ubuntu 20.04_vscode:
新虚拟机在开机前,还需要在 虚拟机设置->-网络适配器->高级页面下,“生成”一下新的mac地址,以免造成网络冲突。
进入虚拟机后,在浏览器里打开网址https://code.visualstudio.com/,下载deb格式的安装包,使用类似下面的指令进行安装
sudo dkpg -i code_1.73.1-1667967334_amd64.deb
最好是从网站上下载一个新版本的vscode,因为在使用原有的ubuntu中的旧版本vscode时,出现了弹出的"ESP-IDF Setup"是空白页面的问题。
后面的一些通用性的工作,其实都可以安装到这个版本的虚拟机里,比如设置git的梯子,准备samba服务,安装搜狗输入法之类的。
参考上面的步骤,克隆出一个新的虚拟机:ubuntu 20.04_esp32,这也是后面开发直接应用到的版本。
当后续安装失败,想要回滚的时候,就继续以上的步骤,创建出一个新的虚拟机进行开发。
按照当前版本官方的<快速入门>指南的说法:编译 ESP-IDF 需要以下软件包。
sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
实际上还要加装了一个python3-pip,否则会在"ESP-IDF Setup"页面中出现错误提示:“/usr/bin/python3 -m pip” is not valid.(ERROR_INVALID_PIP)
通过vscode的菜单 view->Extensions,打开EXTENSIONS窗口,输入idf,找到并安装Espressif IDF。
点击键盘上的F1,输入“idf confi”,找到并点开“ESP-IDF:Configure ESP-IDF extension”,弹出新窗口"ESP-IDF Setup"。也可以从侧边栏的对应图标,进入到这个界面。
选择ADVANCED
上图中
最好提前在ubuntu的右上角的小图标的下拉菜单中选择setting->network点击"network proxy"右边的小齿轮,设置常规的梯子。(后面测试中,这种常规的梯子或者git专用梯子都不会有加速效果,如果真的一直失败,而墙内的网页打开又正常的话,可以试下proxychains,用proxychains code启动vscode)
安装完毕后,提示需要复制一串代码到终端内执行,"ESP-IDF Setup"页面就可以关闭了。
至此,ESP-IDF的配置结束。
在vscode内,按F1,然后输入“idf show”,在下拉栏里选择的"ESP-IDF:Show Examples Projects",再选择"use current ESP-IDF"
后面的一些设置,也往往是这样的形式:在vscode上方出现下拉栏,用户一次或者多次选择不同的选项,进行相关设置。
然后会弹出"ESP-IDF Examples"页面,在这里面选择hello_world,最后点击"Create project using example hello_world"
选择存放路径后,vscode内就会出现新创建的工程了:
观察到右下角有提示(在后面的过程中,看到要求安装啥就装啥,以免出现错误)
点击点击install进行安装,结束后,vscode下方出现如下的图标
部分图标的顺序也是用户首次操作的顺序,所以这里按照顺序讲解常用的几个图标。
1号图标代表当前连接的串口(与9号图标有关系),可以在插入开发板前后,分别使用ls /dev/tty*来判断开发板对应的串口。比如先点击1号图标,然后再在vscode 顶部弹出的下拉框中勾选/dev/ttyACM0,接着再勾选对应的工程hello_world。
ps:在虚拟机右下角可以点击这个图标,选择串口连接的是host还是当前虚拟机
2号图标用来设置目标器件,首先会在vscode 顶部弹出的下拉框中弹出对应的工程,选择后会弹出新下拉菜单:
根据自己芯片的类型进行选择,我在上面是选中了esp32s3,接下来再选择下载方式:
这里选择usb bridge,也就是外置的usb串口模块比如cp2102。
4号图标用于打开menuconfig,但vscode里的menuconfig做成了下面菜单选择页面:
比如这里修改flash size,可以通过左侧的"Serial flasher config"进入,也可以通过在最上方的"Search parameter"找到它。
6号图标用于编译,编译完毕,会显示相应的空间占用:
8号图标用于烧录固件,点击后将要在vscode 顶部弹出的下拉框中,选择需要下载的UART,接着就会触发下载动作,下载完毕后提示:
第一次烧录可能会出现较多问题,注意选择一根好的usb数据线。如果进入不了下载模式,则长按boot键,再按reset键,最后松开两个按键。
一些常见的问题在这片文章里有解决办法:<ESP32入门之程序烧录:烧录错误总结>。
注意执行“sudo usermod -a -G dialout $USER”后是需要重启才能生效的。
网上的一个说法是可以通过“sudo chmod -R 777 /dev/ttyACM0”类似这样的指令,临时解决这个提示“A fatal error occurred: Could not open /dev/ttyACM0, the port doesn’t exist”的问题。
9号图标用于显示当前的串口数据,点击后将会在TERMINAL窗口看到板子的打印效果:
10号图标融合了前面的 编译/下载/显示串口三个功能。