周Yinan 发表于 2020-3-29 13:07:08

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文件
1vi ~/.bash_profile//编辑bash_profile

1234# Setting PATH for Python 3.7# The orginal version is saved in .bash_profile.pysavePATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"export PATH                                 //增加这几行内容(如果不是通过brew,而是通过官网下载安装,这里会默认已经添加了,就退出不用修改了)
按esc键 然后敲入 :wq 进行退出(2)修改 bashrc文件
12345sudo 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文件 生效
12source ~/.bash_profilesource ~/.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.6blob:https://mc.dfrobot.com.cn/ec0fc183-1116-4bd4-b449-f1df3648a57d既然改完了,现在是时候重启电脑进入恢复模式,打开rootless。然后在重启正常打开电脑。
6)现在再回去Arduino编译,编译成功了!blob:https://mc.dfrobot.com.cn/83fa8bd3-0333-4729-b146-3f9d4cd6536a
3.上传出错:A fatal error occurred: Invalid head of packet (0xE0)blob:https://mc.dfrobot.com.cn/26c3ca7e-b9a1-4a0d-b403-53519ad9dd1c错误原因:开发板烧录波特率115200,但是软件上烧录默认选择921600,修改波特率为115200即可。blob:https://mc.dfrobot.com.cn/7afd2ece-c20a-429a-99fe-efa2e873ec30
终于搞定了!
页: [1]
查看完整版本: MacOS下Arduino IDE配置FireBeetle ESP32开发环境遇到的一系列问题