查看: 123|回复: 0

[入门教程] MacOS下Arduino IDE配置FireBeetle ESP32开发环境遇到的一系列问题

[复制链接]
2020年3月28日 作者:zhou_yinan
注:系统是macOS Catalina 10.15.3


1. 无法下载json
解决方案:更换网址。
原文中https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json 这个链接已失效,找到官网下载链接http://download3.dfrobot.com.cn/FireBeetle/package_esp32_index.json 来代替,输入首选项中的开发板网址。

2.编译失败, import serial ImportError: No module named serial exit status 1
解决方案:在正确路径下安装pyserial。
1)在终端中使用 pip3 install pyserial 命令后尝试再次编译(如果成功就跳过,如果还是编译失败就继续)

2)这就很奇怪了,因为明明已经安装过pyserial了。我在系统中查找了pyserial的位置,发现它在python3.7的目录下;但是编译错误信息中显示电脑在/usr/bin/python中没有找到;那么/usr/bin/python对应的python是哪个呢?在终端中输入/usr/bin/python检查了一下,跳出来的赫然是python2.7,真相大白了。

2.5)先把系统里的python默认为python3.7,参考该网站:https://www.jb51.net/article/143735.htm (这一步是我在最之前做的,看到这里,还没有安装python新版的同学,我建议你先安装一下,无论什么版本,只要把对应python3.7改成你下载的版本号代入就可以了。)
(1)修改 .bash_profile文件
1
vi ~/.bash_profile  //编辑bash_profile
1
2
3
4
# Setting PATH for Python 3.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH                                 //增加这几行内容(如果不是通过brew,而是通过官网下载安装,这里会默认已经添加了,就退出不用修改了)
按esc键 然后敲入 :wq 进行退出
(2)修改 bashrc文件
1
2
3
4
5
sudo vi ~/.bashrc           //mac下需要管理员才能修改此文件  
alias python2='/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'
alias python3='/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7'
alias python=python3
//添加以上三行 , 如果不知道自己的python3安装路径,可以用 which python3 命令进行查看路径
按esc键 然后敲入 :wq 进行退出
(3)使得修改的 bash_profile文件 和 bashrc文件 生效
1
2
source ~/.bash_profile
source ~/.bashrc
(4)然后查看当前python版本,
python -V

3)因为我安装了新的python3.7.6,pyserial安装在python3.7.6下,但是系统默认的python2.7仍然没有serial。所以esptool.py里面要import serial的时候,在usr/bin/python里面(也就是python2.7)里面找,找不到serial。
要检查自己电脑里的/usr/bin/python指向哪个版本的python只有在终端里输入“/usr/bin/python”就可以了。
因此现在要做的是把/usr/bin/python变成指向python3.7
如果你的系统版本较低,可以直接在终端使用以下命令:(参考https://blog.csdn.net/freewebsys/article/details/104420010 )
rm -f  /usr/bin/python
ln -s /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /usr/bin/python

4)但是对于我新更新的Catalina系统版本来说,我没有权限更改。查阅资料得知新更新后有rootless机制,即使在root权限下也不能所以读写某些特定路径的文件。平时开启是有好处的,但现在显然需要暂时关闭它。
开启与关闭的方法参考https://blog.csdn.net/qq_28869927/article/details/83058386
关闭Rootless:重启电脑,按住Command+R进入恢复模式,点击上方的实用工具菜单开启Terminal,输入csrutil disable后重启电脑即可。
打开Rootless:同样进入恢复模式,输入csrutil enable后重启电脑。

5)关闭rootless(也简称SIP)后,重启电脑。
现在更改还是会被拒绝,参考https://blog.csdn.net/Mr_BJL/article/details/102780325
在终端中输入sudo mount -uw /来暂时获得权限,这个权限会在电脑重启后消失。
现在在终端中输入:
sudo rm -f  /usr/bin/python
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 /usr/bin/python
(python3.7的路径可以在终端中输入 which python3.7得到)
操作完了之后在终端中输入/usr/bin/python检查一下,没错的话现在它指向的是python3.7.6
既然改完了,现在是时候重启电脑进入恢复模式,打开rootless。然后在重启正常打开电脑。

6)现在再回去Arduino编译,编译成功了!

3.上传出错:A fatal error occurred: Invalid head of packet (0xE0)
错误原因:开发板烧录波特率115200,但是软件上烧录默认选择921600,修改波特率为115200即可。

终于搞定了!

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail