当前位置: 首页 > news >正文

51单片机开发环境搭建 - VS Code 从编写到烧录

我安装并测试成功的环境:

  • 操作系统: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,点击并新建项目。
EIDE-New-Project
选择 空项目 - 8 位 MCU 项目,并填写项目名称保存。这时右下角会弹出是否切换工作区的询问,可以点 继续
EIDE
这样就进入了刚刚创建的新项目的工作区。然后点“构建配置”旁边的切换图标,选择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 不同的地方,不完整但应该会持续更新。。。

  1. #include <8051.h> // SDCC
    #include <regx51.h> // Keil
    
http://www.lryc.cn/news/14250.html

相关文章:

  • python datetime、字符串和时间戳之间的相互转换12小时制和24小时制时间相互转化
  • 百度百科词条怎么做?百度百科词条创建攻略分享
  • 基于Hive的河北新冠确诊人数分析系统的设计与实现
  • k8s二进制部署
  • Windows出现0xc00d36e5错误怎么办?
  • Idea搭建Spring5.3.x源码阅读环境
  • 2.20jdbc
  • 【代码随想录训练营】【Day19休息】【Day20】第六章|二叉树|654.最大二叉树|617.合并二叉树|700.二叉搜索树中的搜索|98.验证二叉搜索树
  • 华为云计算之容灾技术
  • React系列之Redux
  • 最简单得方法解决TCP分包粘包问题
  • 免费使用通配符域名证书
  • 0基础成功转行Python自动化测试工程师,年薪30W+,经验总结都在这(建议收藏)
  • MyBaits
  • kubeadm的部署、Dashboard UI以及连接私有仓库
  • 刷题记录:牛客NC20325[SDOI2009]HH的项链
  • 【REACT-路由v6】
  • 【离散数学】3. 代数系统
  • 深度学习常用的优化器整理
  • Java 内部类
  • 【FAQ】集成分析服务的常见问题及解决方案
  • 11.注意力机制
  • 45岁当打之年再创业,剑指中国版ChatGPT,这位美团联合创始人能否圆梦?
  • 数据结构——第二章 线性表(2)——链式存储结构
  • 【更新】囚生CYの备忘录(20230216~)
  • 分布式事务几种方案
  • Eclipse各版本安装Tomcat插件全攻略
  • 志趣相投的人总会相遇——社科院与杜兰大学金融管理硕士项目
  • 算法专题训练营
  • 让ChatGPT生成以自己为主角的短篇小说