开发环境:Linux(virtualbox虚拟机 ubuntu 22.04)

        背景:尝试在虚拟机环境中将ESP32的集中开发方式完成配置,目前正在尝试完成Arduino开发环境的配置,使用的是一个新建的新虚拟机。

        描述:已经安装完成Arduino,并且在芯片包管理器中下载乐鑫官方的esp32芯片包v2.0.11完成(注:v2.x版本的下载都很顺利,似乎不需要科学上网,但是v3.x版本的就不行,当然笔者并未将v3下的全部版本都尝试一遍)

       现象截图:

       首先根据网络检索结果(啥都没有),排查了ch340驱动未安装(ubuntu自带)

        然后尝试更换芯片,换成“ESP32 Dev Module”再编译,依旧不行。

        刚开始以为,这里的serial库是乐鑫官方编写的串口底层文件,有可能是下载芯片包的时候因为某些原因没有下载成功,于是前往Arduino-ESP32的官方仓库查证,然而在仓库中找不到报错信息中提及的路径和文件。开始怀疑人生....

        之后又经过多次尝试,不断查询报错信息设计到的文件或者路径中出现的文件夹名,终于找到了乐鑫的官方库,链接如下:esptool仓库

        进入esptool文件夹,发现内部本身并没有serial.py文件,又傻了...

        来都来了,索性进入报错的文件(loader.py)内部,看看它是怎么实现导入serial库的,涉及到导库的相关代码细节如下:

        可以看到,在第40行有说明,我们这里导入的库,具体来说,是python的pyserial库,刚好这是台新虚拟机,我还没来得及安装python环境,于是先尝试排查原因是否为python3未安装(ubuntu实际已经自带了)

        打开虚拟机命令行,输入”python3 --version”确认python是否安装,我以为已经找到真相了,然而虚拟机已经自带python了,又懵了...

        好在我已经快要接近终点了,最后终于在检查pyserial库时找到了答案,这个库需要额外安装,之前并没有事先安装,现在只需要补上就好。

        打开命令行,先安装pip工具:

apt install python3-pip

        安装pyserial库:

pip install pyserial

        回到虚拟机的Arduino IDE,重新编译工程,过了!好耶:)

        参考:pyserial,一个实用的串口通信python库

                   乐鑫esptool官方库

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐