VScode 单片机开发环境搭建

519 阅读2分钟

首先安装PlatformIo IDE 扩展

安装之后会自动下载 platformIO Core, 等待下载完成, 重启Vscode 即可。

新建一个STC89C516RD+型号单片机工程

1. 按照下图步骤, 点击New Project创建工程

2. 在board选项处选择自己的单片机型号, 然后点击Finish, 开始创建下载框架、SDK

3. 很不幸, 目前最新版的PlatformIO Core 在遇到名字后面带有+号的单片机,在创建的时候会报错。尝试很多次之后, 都没创建成功。

报错信息:

InvalidEnvNameError: Invalid environment name 'STC89C516RD+'. The name can contain alphanumeric, underscore, and hyphen characters (a-z, 0-9, -, _)"

4. Google 搜索报错信息 InvalidEnvNameError 处理。

点击进入居然到了PlatformIO Core 的代码仓库, 一看是python写。一个config.py文件, 稍微阅读, 就发现代码最前面有几个正则表达式, 第一个根据变量名字判断是校验名称的正则。然后, 当前网页搜索InvalidEnvNameError, 就定位到了报这个错误的源码处。

稍微阅读,这里就是用上面的正则在做校验判断。^[a-z\d\_\-]+$ 正则中的后面【+】表示多次匹配前面的内容,所以这个正则里面不包含【+】符号,就不能匹配,抛出错误逻辑。这里只是名字的校验, 直接注释代码应该也能跑起来。

心想这是源代码, 我似乎修改不了。于是,顺手提了一个Issue, 等待官方解决。

这样, 我今天才到的单片机就玩不了,很糟糕。官方解决,不知猴年马月了。所以, 我尝试开始思考如何在本机下载的扩展里面修改源代码。

问了ChatGPT,vscode的扩展代码在本地~.vscode/extensions里面, 果然找到了扩展包,但很遗憾,并没有发现上面github仓库里面的代码结构。

然后,通过观察发现, platform 有cli,可以通过终端创建工程,而代码是用python开发的。作为前端开发的我, 很容易联想到,界面上的各种创建操作,在底层是调用的cli的方法,就是python的代码。那我下一步只要找到python脚本,就可以修改。

再次问了ChatGPT, PlatformIO Core的代码包在~.platformio位置。用vscode打开这包, 全局搜索InvalidEnvNameError关键字,惊喜,找到了源代码。

直接注释这两行代码, 重新创建工程,惊喜,创建成功了。

最后,回复了一下github上提的issure,自己的解决方式。