上一篇贴子,是在windows中进行开发的,但是遇到了很多无解的问题,有兴趣的小伙伴可以看一下,期望能够得到解答:【ESP32-S2-Kaluga-1测评】2. 更新固件
所以我决定使用虚拟机搭载ubuntu系统试一试。
开干,虚拟机搭载系统的过程就不赘述了,不是重点,重点是怎样让我的esp32-s2跑起来。
1. 在子目录下创建一个文件夹
创建一个文件夹,名字叫做esp。
使用如下的的命令切换到该目录,之后拷贝github的工程到该目录,这个命令是直接下载的master分支的。
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
这个过程比较耗时,因为在github上下载实在是太慢了,都是几十k的下载
如下是下载完成的截图。
2. 安装所需工具
在1中已经拷贝esp-idf工具了,现在需要安装,使用如下面命令进入到esp-idf文件夹。
cd esp-idf
然后使用下面的命令安装esp-idf工具组
install.bat
这个过程也会花费一段时间,需要耐心等待
在安装的过程中可能会提示pip版本不是最新的,现在最新的是20.3等等这样的提示,直接导致安装失败:
(You are using pip version 8.1.1, however version 20.2 is available.)
提示上面的信息之后直接更新一下pip版本就行了,命令如下:
pip install --upgrade pip
之后在使用./install.sh来安装工具组。
安装完成之后的提示如下:
3. 设置环境变量
我们刚才已经安装好了工具组,接下来需要配置好环境变量。
. $HOME/esp/esp-idf/export.sh
也可以直接使用命令:. ./export.sh 来讲工具组添加到环境变量
注意命令开始的 “.” 与路径之间应有一个空格!
安装好了之后的截图如下:
安装上面的方法安装完了之后,我试了一下查看idf版本信息的命令,看看能不能运行,因为我使用windows 10安装的时候是不能够识别这个命令的。但是使用虚拟机成功地显示出来了版本信息,太棒了,继续接下来的操作。
idf.py --version
4. 创建工程
我在esp目录下面创建了一个名字叫做myProjects的文件夹,用来存放我们自己的工程。
使用下面的命令退回到上一级目录,并进入我们刚才创建的那个目录下去。
cd ../myProject/
使用下面的命令拷贝esp-idf下面的examples里面的hello_world工程到我们自己创建的myProjects目录下。
cp -r $IDF_PATH/examples/get-started/hello_world .
执行了上面的命令之后可以使用自己打开文件夹myProjects看看下面是不是已经有了一个名字叫做hello_world的文件夹,有的话就就便是已经移动成功了。
继续接下来的操作。
5. 连接设备
我们先参考官方文档中的linux系统下面查看串口的方式进行一步一步的操作。
具体操作方式如下:
(1)首先不连接我们的esp32-s2开发板,使用下面的命令查看一下当前存在的一些端口,需要记住。
ls /dev/tty*
(2)连接上我们的esp32-s2开发板,两个USB口都需要连接,然后再次使用上面的命令,查看多出来的端口信息就是我们的串口。
连接上了ESP32-S2之后需要点击一下虚拟机下面的USB图标,使串口设备连接到虚拟机,而不是原来的主机。
如下图所示,多出来的就是我们得到ESP32-S2端口,USB0和USB1
6. 查看ESP32-S2的连接状态
我们需要使用一个串口查看工具putty来查看我们的esp32-S2是不是连接成功了。
直接输入下面的命令进行安装即可。
sudo apt-get install putty
然后打开putty工具
按照官方文档的提示进行设置,如下:
点击Open,但是没有反应,我又重新连接到了windows,使用其他的串口工具测试了一下COM3,和COM4(在windows中是COM3和COM4),其中COM3没有反应,COM4可能正常接收到数据。
最后找到了解决方法,不要点击串口这个,直接在这个窗口中选择如下就可以正常连接了,ttyUSB0连接之后没有数据显示,ttyUSB2连接之后可以打印串口数据。
如下,这是我下载了Hello_world程序之后串口打印的数据,原始程序打印出来不是这个样子的:
7. 设置目标芯片
使用下面的命令设置目标芯片
idf.py set-target esp32s2
设置完成之后如下图所示
7. 编译工程
使用下面的命令编译工程
idf.py build
8. 下载工程
使用下面的命令下载工程bin文件
idf.py -p /dev/ttyUSB0 flash
但是提示拒绝访问,是因为没有开放串口穿线的原因,使用下面的命令开放串口权限
sudo usermod -a -G dialout $USER
sudo chmod 777 /dev/ttyUSB0
sudo chmod 777 /dev/ttyUSB0
然后再次使用上述的命令 idf.py -p /dev/ttyUSB0 flash 进行下载,能够进行下载了,但是按下了boot按钮还是没有效果.
最开始的那个虚拟机有点问题,我从新升级了Vmware和下载了最新版的ubuntu 20,配置过程一言难尽呀,好多东西都要重新下载,并且安装的时候安装不了了python-pip,我只好在网下下载了一个pip的包,手动安装了,好在最终终于能用了。重新进行了尝试,使用串口2终于下载成功了
直接就下载了,不需要按什么按钮。但是最开始我安装的ubuntu16没有成功,很烦人,这个过程就搞了3个星期,主要是在github下载esp-idf包和依赖包的时候是在是太慢了,今天终于下载完成了,而且中断了就要重新下载。
不知道串口一是干什么用的,串口2可以用来下载,命令如下: idf.py -p /dev/ttyUSB0 flash
8. 串口打印
使用命令监控串口数据:idf.py -p /dev/ttyUSB1 monitor
数据正常打印。
完事。
这个板子开发之路真的是一言难尽呀,但是总算搞好了。
补充内容 (2020-8-8 23:22): 8.下载工程里面开通串口权限,需要开通两个,那个地方写错了,现在改不了了,应该是sudo chmod 777 /dev/ttyUSB0和sudo chmod 777 /dev/ttyUSB1 本帖最后由 hehung 于 2020-8-8 21:02 编辑