我安装并测试成功的环境:
- 操作系统:Windows 10 (22H2)
- 单片机:STC89C52RC
- Python version: 3.7.6
在这之前,给51单片机写程序是用 Keil 5(编写+编译)、STC-ISP(烧录),由于切换应用比较麻烦,并且不够美观,所以尝试使用熟悉的 Visual Studio Code 来完成这些操作。
安装 stcgal
stcgal 是用来向STC单片机烧录程序的命令行工具,在 VS Code 中需要调用它来完成一键烧录操作。
需要安装好 Python 和 Pip:
PS C:\Users\username\Desktop> python -V
Python 3.7.6
PS C:\Users\username\Desktop> python -m pip -V
pip 19.2.3 from C:\Program Files\Python37\lib\site-packages\pip (python 3.7)
使用 Pip 安装 stcgal:
PS C:\Users\username\Desktop> python -m pip install stcgal
检查 stcgal 是否安装成功:
PS C:\Users\username\Desktop> stcgal -V
stcgal 1.6
如果不能在命令行中使用这个命令,则需要配置一下环境变量,可以搜索 stcgal.exe 在计算机中的路径,然后添加到环境变量即可,我的是:
C:\Users\username\AppData\Roaming\Python\Python37\Scripts
Embedded IDE For VSCode
在 VS Code 中搜索并安装 Embedded IDE 即可。VS Code左侧会出现 EIDE 的 logo,点击并新建项目。
选择 空项目
- 8 位 MCU 项目
,并填写项目名称保存。这时右下角会弹出是否切换工作区的询问,可以点 继续
。
这样就进入了刚刚创建的新项目的工作区。然后点“构建配置”旁边的切换图标,选择SDCC(Small Device Compiler),这时通过右下角的提示安装SDCC,后面新建的工程都要使用SDCC来编译,如果你已经安装过Keil或者想要使用Keil的编译器,可以选择上面的 Keil C51 Compiler 并配置一下Keil 的路径。
在 构建配置
下面的 烧录配置
里面选择烧录工具 stcgal
。
在项目文件夹下新建目录 src
,在 src
下新建 main.c
然后写个测试程序(我这里是给8个引脚置低电平,把开发板上的8个LED点亮)。
不过还需要手动将这个src目录添加到项目里面:点左侧EIDE图标,然后右键 项目资源
- 添加源文件夹
- 普通文件夹
,选择刚刚创建的 src
文件夹,然后就可以编译烧录了。
编译和烧录都在右上角,点击 构建
即可编译成功,下方自动唤起的控制台会输出日志。
[ INFO ] start outputting files ...
>> output hex file [done]
packihx: read 12 lines, wrote 14: OK.
file path: "build/Debug/Slightwind.hex"
[ DONE ] build successfully !, elapsed time 0:0:0
* 终端将被任务重用,按任意键关闭。
然后点击右上角的 烧录
并选择单片机所在的串口,下方会提示:
Waiting for MCU, please cycle power:
这个时候给单片机上电,就会烧录完成了。
SDCC 和 Keil 的区别
在这里我补充一些使用 SDCC 和 Keil 不同的地方,不完整但应该会持续更新。。。
-
#include <8051.h> // SDCC #include <regx51.h> // Keil