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

news2024/9/17 8:22:59

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

  • 操作系统: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.coloradmin.cn/o/359041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第六章.卷积神经网络(CNN)—卷积层(Convolution)池化层(Pooling)

第六章.卷积神经网络(CNN) 6.1 卷积层(Convolution)&池化层(Pooling) 1.整体结构 以5层神经网络的实现为例&#xff1a; 1).基于全连接层(Affine)的网络 全连接层&#xff1a;相邻层的所有神经元之间都有连接 2).常见的CNN的网络 3).全连接层存在的问题 数据的形状容易被…

VSCode Remote-SSH配置免密登录踩坑

VSCode Remote-SSH配置免密登录踩坑1. 参考2. 基本流程2.1 机器A&#xff08;Windows客户端&#xff09;2.2 机器B&#xff08;Linux服务器&#xff09;2.3 机器A&#xff08;Windows客户端&#xff09;的VSCode设置3. 踩坑总结相关教程很多&#xff0c;但要么冗余&#xff0c;…

Teradata退出中国,您可以相信中国数据库!

继Adobe、Tableau、Salesforce之后&#xff0c;2023年2月15日&#xff0c;数仓软件巨头Teradata宣布将逐步结束在中国的直接运营。数仓界的“黄埔军校”仓皇撤出中国市场给出的理由非常含蓄&#xff1a;Teradata对中国当前和未来商业环境的慎重评估&#xff0c;我们做了一个艰难…

阅读笔记5——深度可分离卷积

一、标准卷积 标准卷积在卷积时&#xff0c;同时考虑了特征图的区域和通道信息。 标准卷积的过程如图1-1所示&#xff0c;假设输入特征图的channel3&#xff0c;则每个卷积核的channel都为3&#xff0c;每个卷积核的3个channel对应提取输入特征图的3个channel的特征&#xff08…

抖音怎样报白?报白需要审核哪些资料呢

抖音怎样报白&#xff1f;报白需要审核哪些资料呢 抖音报白需要什么资料&#xff0c;翡翠原石产品如何开通报白#报白#小店报白#小店运营#抖音#抖音小店运营 文/专栏作家百收 随着抖音在国内流行起来&#xff0c;抖音上每天会有大量的视频更新&#xff0c;越来越多的年轻人也加…

Java数据结构中链表分割及链表排序使用快速排序、归并排序、集合排序、迭代、递归,刷题的重点总结

本篇主要介绍在单链表进行分割&#xff0c;单链表进行分隔并使用快速排序、归并排序、集合排序、迭代、递归等方法的总结&#xff0c;愿各位大佬喜欢~~ 86. 分隔链表 - 力扣&#xff08;LeetCode&#xff09; 148. 排序链表 - 力扣&#xff08;LeetCode&#xff09; 目录 一…

CAS概述

目录一、CAS与原子类1.1 CAS1.2 乐观锁与悲观锁1.3 原子操作类二、 synchronized优化2.1 轻量级锁2.2 轻量级锁-无竞争2.3 轻量级锁-锁膨胀2.4 重量级锁-自旋2.5 偏向锁2.6 synchronized-其他优化一、CAS与原子类 1.1 CAS CAS&#xff08;一种不断尝试&#xff09;即Compare …

2023年正在使用的设计资源网站分享

这篇文章&#xff0c;也将整理出我今年一直都在使用的设计资源网站&#xff01;作为设计师一定是离不开优质的资源网站的&#xff0c;我自己的话会每天都花一两个小时的时间去浏览自己的收藏的这些资源网站。哪怕只是简单的浏览&#xff0c;也可以在无形中增加自己对设计的“设…

rocketmq延时消息自定义配置

概述 使用的是开源版本的rocketmq4.9.4 rocketmq也是支持延时消息的。 rocketmq一般是4个部分&#xff1a; nameserver&#xff1a;保存路由信息broker&#xff1a;保存消息生产者&#xff1a;生产消息消费者&#xff1a;消费消息 延时消息的处理是在其中的broker中。 但是…

华为认证含金量如何?

一本证书是否有用&#xff0c;还要看它是否被市场所认可。 我们说华为认证HCIP有用&#xff0c;很大一部分还取决于它极高的适用性和权威性。华为是国内最大的生产销售通信设备的民营通信科技公司。 自2013年起&#xff0c;国家对网络安全极度重视&#xff0c;相继把国外的网…

rk3568 开发板Ubuntu系统说明

Ubuntu MinimalUbuntu Minimal系统基于Ubuntu 64bit系统构建&#xff0c;目前发布有Ubuntu18.04这个版本。与Ubuntu Desktop 相比具有以下特性&#xff1a;没有桌面环境&#xff0c;占用资源少&#xff0c;在简化网络管理之后&#xff0c;只需40M内存&#xff1b;针对嵌入式平台…

DFN: Dynamic Filter Networks-动态卷积网络

一、论文信息 论文名称&#xff1a;Dynamic Filter Networks 作者团队&#xff1a;NIPS2016 二、动机与创新 卷积层是通过将上一层的特征映射与一组过滤器进行卷积计算输出特征映射&#xff0c;滤波器是卷积层的唯一参数&#xff0c;通常用反向传播算法在训练中学习&#xff…

一个批量扫描shiro漏洞的工具

Update 1.扫描的判断逻辑,通过返回的rememberMe个数进行判断 2.添加了bypass功能,可以发送随机的请求方法 学习 原理 <1.2.4 shiro550 <1.4.2 shiro721 https://cloud.tencent.com/developer/article/1944738 需要成功登录(目前还没有添加 >1.4.2 换加密方…

kubeadm的部署、Dashboard UI以及连接私有仓库

目录 一、kubeadm 部署 K8S 集群架构 1、环境准备 2、所有节点安装docker 3、所有节点安装kubeadm&#xff0c;kubelet和kubectl 3、部署K8S集群 二、dashboard 部署 1、 安装dashboard 2、使用火狐或者360浏览器访问 三 、安装Harbor私有仓库 四、 内核参数优化方案 …

《FPGA学习》->呼吸灯

&#x1f34e;与其担心未来&#xff0c;不如现在好好努力。在这条路上&#xff0c;只有奋斗才能给你安全感。你若努力&#xff0c;全世界都会为你让路。呼吸灯&#xff0c;简而言之就像人类呼吸一样&#xff0c;有节奏的让LED灯从&#xff1a;灭->微微亮->微亮->亮-&g…

python HZK16字库使用

注&#xff1a; 从个人博客园移植而来 环境&#xff1a; windows7, python2.7 简介 偶然在网上看到热心网友使用python讲微信头像进行了组字&#xff0c;感觉很有意思&#xff0c;就做下研究。 感谢&#xff0c;原文参考: Python玩微信头像组字 需求的相关工具&#xff1a; …

spring cloud gateway 实现redis动态路由及自动项目路由上报

前言 spring cloud gateway默认为内存存储策略&#xff0c;通过配置文件加载的方式生成路由定义信息 可以看到&#xff0c;RouteDefinitionRepository继承了两个父接口&#xff0c;分别为RouteDefinitionLocator和RouteDefinitionWriter&#xff0c;RouteDefinitionLocator定…

Java并发知识点

文章目录1. start()和run()方法的区别&#xff1f;2. volatile关键字的作用&#xff1f;使用volatile能够保证&#xff1a;防止指令重排3. sleep方法和wait方法有什么区别&#xff1f;sleep()方法4. 如何停止一个正在运行的线程&#xff1f;方法一&#xff1a;方法二&#xff1…

MindFusion Diagramming for Java, 最新版 Crack

Diagramming for Java, V4.6.1 A unique Java Swing library for any type of flowchart.您需要的每一个图表功能 图表、方案、图形、网络、算法、树、图表 - 所有这些都是使用 MindFusion Diagramming for Java 工具快速轻松地构建的。结果令人着迷。 Java Dagram 库&#xff…

论文阅读 | Real-Time Intermediate Flow Estimation for Video Frame Interpolation

前言&#xff1a;ECCV2022 快速插帧方法 Real-Time Intermediate Flow Estimation for Video Frame Interpolation 引言 进行视频插帧目前比较常见的方法是基于光流法&#xff0c;分为两个步骤&#xff1a;1.通过光流对齐输入帧&#xff0c;融合对齐的帧 光流并不能直接同于…