VS Code开发51单片机【代码+编译+烧录】

参考文章:基于 VS Code 搭建 C51 单片机开发环境_vscode c51-CSDN博客

安装 Visual Studio Code

VS Code开发51单片机【代码+编译+烧录】

一、必须先下载安装Keil C51

VS Code配合【Embedded IDE】插件写 C51 单片机程序还是要安装 Keil C51,因为需要用到里面的编译器和链接器。

二、下载安装 Visual Studio Code

初学者一般都使用 Keil μVision 来编写C51、STM32 等单片机的代码,但这个教程是一份关于在Visual Studio Code上开发51单片机的入门教程。

三、VS Code安装插件

1.插件【Chinese】——汉化VS Code

VS Code软件界面英文变中文版,功能秒明白。

安装完记得重启软件。

2.插件【C/C++】【C/C++ Extension Pack】——检查C语言的语法。

3.插件【Embedded IDE】

点击扩展,搜索【Embedded IDE】并安装

4.插件【Keil Assistant】

这个插件可以不用安装,因为前面安装的Embedded IDE插件是这个Keil Assistant的升级版。

安装完后点击【扩展设置】,添加Keil的可执行文件的路径,这里有两个路径,上面是C51的,下面是MDK的。

注意:这里我的 Keil C51 和 Keil MDK-Arm 共存,所以两个位置填的是同一个地址。安装时Keil C51必须先装,Keil MDK-Arm后装。

5.插件【通义零码】——AI智能写代码   

或者文心快码Baidu Comate、豆包MarsCode AI: Coding Assistant

点击扩展,搜索通义灵码【TONGYI Lingma】

阿里巴巴的智能编码助手:解释代码、生成流图、写代码注释、写单元测试、优化代码、智能问答解决问题,AI真香——要登录才能使用哦

四、创建EIED项目

新建一个EIDE项目(New Project)——然后在中间弹出的下拉菜单中选择空项目(Empty Project)——选择 8Bit MCU Project——选择 8051 Empty Project(With Keil C51 Compiler)——输入项目名(我命名为 test_VSC_C51)——回车选择项目的存放路径(放在自己新建的文件夹里)——右下角弹出通知,点击Yes打开项目的工作空间——项目创建成功!

五、配置C51编译器,只需一次

点击【EIDE】插件,下方操作中选择【配置工具链】,点击第一个Keil C51,这里需要找到Keil C51软件的安装路径,选择‘TOOLS.INI’文件。

注意:这里我的 Keil C51 和 Keil MDK-Arm 共存,必须先装Keil C51,后装Keil MDK-Arm。

六、编译和下载

自动生成的代码,主函数所在位置如图所示,点击左边【资源管理器】,在src目录下是main.c源代码文件。

.eide: EIDE 项目文件夹,存放eide项目信息,日志等文件

.vscode: VS Code 配置文件目录

build:编译默认输出目录,可以在项目的设置中修改

tools:编译和下载使用的 Python 程序(是Python)

1.构建(F7)

先确认构建配置:Keil_C51

首先点击【EIDE】插件,才会出现构建配置和烧录配置。

点击【构建配置】右边的切换箭头,选择Keil_C51工具链。

然后点击右上角的“构建”符号

正常情况下,底部终端会输出“构建成功”的提示

如果不成功的话,需要用 Win+cmd 唤醒命令行安装一下python相关的东西,当时用【通义灵码AI】生成解决方案把问题给解决了,没截图保存,现在想不起来了。。。貌似是关于 stcflash.py 的问题,因为上面说的tools编译和下载使用的 Python 程序。

当时有个构建异常ERROR build failed,卡了好长时间,直接甩过去问【通义灵码】,提供了很多种可能,试了但都没用,直到后来~

解决的方案:当时机子里装了3个Keil,分别是一个MDK,两个版本的C51,把共存的MDK和C51保留,删除了另一个低版本C51v959。重新链接了TOOLS.INI文件的正确位置,才使得构建过关了。

2.烧录程序

构建成功后的下一步就要把程序下载到51开发板啦,不再使用广告多多的STC-ISP了。

2.1 默认Shell下载程序

烧录配置:一般默认是Shell烧录脚本,点击右上角的“烧录”符号,可以在终端看到如下信息。

但如果烧录出现如下信息:

Traceback (most recent call last): File "E:\VSC_C51\test_VSC_C51\tools\stcflash.py", line 1412, in <module>

main()

File "E:\VSC_C51\test_VSC_C51\tools\stcflash.py", line 1408, in main

program(Programmer(conn, opts.protocol), code, opts.erase_eeprom)

File "E:\VSC_C51\test_VSC_C51\tools\stcflash.py", line 975, in program

prog.detect()

File "E:\VSC_C51\test_VSC_C51\tools\stcflash.py", line 517, in detect

raise IOError()

^^^^^^^^^^^^^^^

OSError

【通义灵码】说:stcflash.py 脚本在执行 detect 方法时抛出了一个 OSError 异常。最后的解决方案好像是把【烧录配置】由shell改为stcgal,详见步骤2.2。

2.2 配置下载器下载程序

烧录配置:如果不用Shell烧录脚本,则需要选择【stcgal】烧录(STC芯片专用。 )

点击【烧录配置】右边的切换箭头,选择stcgal for STC chips。

这里需要通过命令行安装stcgal下载器

        pip安装: 在Win+R唤起的cmd窗口输入并执行: pip3 install stcgal

注意:请提前安装python 3.13.x,并添加路径到Path环境变量

2.3 点击烧录

点击右上角的“烧录”符号

等待MCU重新上电,写Flash的进度条跑动起来……

烧录完成,程序成功下载到开发板

打包模板

对于当前项目,可以将其创建为模板并将模板打包,供之后开发其他同类型的项目使用。

在项目名称处右击,导出为【EIDE模板】,当前项目的路径中会自动生成一个EPT类型文件。

之后新建项目如果想基于这个模板,在新建项目的时候,不要点【空项目】 Empty Project,应该选择 【本地项目模板】Local Template。

然后根据模板的路径,选择相应的 【*.ept 】文件就可以了。

继续输入一个要新创建的项目名称

最后给大家上一个项目的完整目录的截图

不当之处,还请各位小友指正,感激不尽~

### 使用 VSCode 进行单片机开发的教程和配置方法 #### 安装 VSCode 及必要插件 为了使用 Visual Studio Code (VSCode) 开发单片机项目,首先需安装该编辑器本身。之后,还需安装一系列辅助插件以增强功能。 对于中文用户来说,可以考虑安装简体中文插件以便更友好地操作界面[^1]。C语言支持插件则是必不可少的一部分,它提供了语法高亮、代码片段等功能,极大地提高了编程体验。另外,针对特定需求如移植来自Keil项目的工程,则可利用专门设计用于简化此过程的Keil助手插件。 #### 创建并配置工作区 当一切准备就绪,在VSCode中打开目标文件夹后应手动建立`.vscode`文件夹(除非通过某些动作让程序自动生成),这一步骤至关重要因为后续许多个性化设置都将保存在此处。具体而言,至少要创建一个名为`c_cpp_properties.json` 的JSON文件来定义编译选项和其他与C/C++有关的参数[^2]。 #### 配置工具链和支持库 采用 GCC ARM 编译器作为替代方案之一,并配合 Make 工具完成自动化构建流程;OpenOCD 则负责调试任务,确保能够顺利下载固件至目标板卡运行。这些外部依赖项同样需要被正确集成进VSCode环境中去。 #### 替换 Keil 进行开发实践 一旦上述准备工作全部落实到位,就可以尝试把原本基于Keil IDE下的源码迁移到新的平台上来了。此时要注意调整原有的Makefile或者其他形式的构建脚本使之适应新环境的要求。同时也要留意不同IDE间可能存在的差异之处比如头文件路径设定等问题。 ```python # 示例 Python 脚本仅作展示用途而非实际应用部分 print("This is a demo script.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢奕冰2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值