MacOS下PyCharm与Thonny共同开发MicroPython嵌入式ESP32芯片解决方案

一、起因 

        由于在开发ESP32C3的过程中,使用MicroPython而未使用C语言,曾经尝试过以下几种开发方法,各有利弊如下。

1. Arduino

        Arduino是一个很好的开发IDE,但在MacOS下使用会导致风扇狂转,电脑整体较卡(本人电脑MacBook Pro 13-inch, 2020, Four Thunderbolt 3 ports;系统macOS Sonoma 14.2.1)。又由于使用MicroPython不使用C语言,开发较困难,故未采用。

2. VSCode下RT-Thread MicroPython

        RT-Thread MicroPython作为拓展,在代码的编写过程中会有代码自动补全,编写比较方便。但最新版会显示无设备连接。

        查询GitHub(https://github.com/RT-Thread-packages/micropython/issues/187)后降级1.0.8就可以找到设备,且中间版本也不能找到设备。

        但会发现一个新问题:连接后DEVICE FILE LIST那个地方看不到文件,测试了把文件直接传到单板是正常的,但是会无法显示。无法实时看到芯片文件系统。故未采用。

3.  VSCode下Pymakr

        Pymakr与RT-Thread MicroPython异曲同工,但Pymakr在ESP32C3的连接下无法连接芯片(TypeC连接口显示/dev/cu.usbmodem57280419561而非/dev/cu.wchusbserial57280419561),由于CH340驱动问题,使用Pymakr无法连接。故未采用。

二、实现

1. 启发

        Thonny是一个轻量级的Python编译器,能够实时显示芯片的文件系统与运行相关部分。代码补全也能够运行,但无法像JetBrain生态下的那种代码补全那么完整,代码高亮显示部分个人不是太喜欢。故想使用PyCharm进行编写,Thonny进行烧写。(本人经常使用Rider与IDEA,使用PyCharm自然也成为习惯)

2. PyCharm项目建立

        正常建立PyCharm项目即可,建立后的项目如下图。

        进入Thonny库环境下窃取pyi存根文件,以便能够顺利进行编写。

        在Finder下同时按下:Shift+Command+G,进入路径

/Applications/Thonny.app/Contents/Frameworks/Python.framework/Version/3.10/lib/python3.10/site-packages/thonny/plugins/micropython/

        在此路径下可以查看到micropython的一些pyi接口文件,常用的network、machine等包位于目录下的base_api_stubs文件夹内,将此文件复制至PyCharm的项目文件内,同时建立boot.py文件,即可使用PyCharm进行开发。

        注意:不要为了代码整洁移动machine.pyi文件以及network.pyi文件的位置至新的文件夹内,这样会使boot文件无法正确import,如修改代码则无法在芯片上正确启动。 

        之后便可以正常使用代码补全功能,如果缺少任何包可以进入Thonny包内进行搜寻,复制到PyCharm项目内。

        注意:一些特定的包需要在import _thread下使用Command+鼠标左键点击_thread查看位置。

/Applications/Thonny.app/Contents/Frameworks/Python.framework/Version/3.10/lib/python3.10/site-packages/jedi/third_party/typeshed/stdlib/3/_thread.pyi

 三、总结

        MacOS下使用PyCharm进行代码编写,Thonny进行烧录测试,配合使用能够达到很高的编写效率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值