Keil C51工程转VSCode Keil Assistant开发全过程
Keil C51工程转VSCode Keil Assistant开发全过程✨这里以stc15W408AS为例。相关篇《【开源分享】自制STC15W408AS开发板》编译-烧录演示✨目前Keil Assistant插件已经停止更新但是还是可以继续使用。基本可以满足一般的需求。只不过使用VSCode加载新的MDKKeil工程项目需要手动指定Keil工程.现在有可替代的插件就是Keil Assistant Community Fork发布者candycium插件在Keil项目文件内使用VSCode打开后该插件可以自动识别 C51/ARM 项目类型无需再手动指定项目。该插件亮点功能 ✨智能项目搜索打开工作区后自动检测并加载 Keil 项目无需手动查找一键式编译体验全新的状态栏按钮设计编译、重编译、下载一键完成多核心并行编译自动检测 CPU 核心数充分利用系统性能显著提升编译速度智能项目类型识别自动识别 C51/ARM 项目类型优化编译配置跨模块优化支持支持 Cross-Module-Optimization提供更好的代码优化效果性能提升 编译速度提升高达 300%在 8 核心 CPU 上测试项目加载时间减少 50%内存占用优化降低 30%其它功能相似插件Keil uVision Assistant转VSCODE开发环境主要原因可能代码提示以及代码跳转功能或者其他。代码提示功能代码跳转功能✅Keil C51工程转VSCode准备实施条件电脑端已经实现了Keil C51开发。电脑端已经安装了VSCODE软件。电脑端已经安装了python。VSCode配置过程在VSCode里面安装Keil Assistant插件。给Keil Assistant插件配置Keil软件安装绝对路径。3. 依赖C\C插件stcgal烧录工具安装依赖python pippip install stcgalKeil工程转VSCODE在转入到VSCODE前先在Keil软件中将工程创建起来并勾选生成HEX选项。编译一遍让其生成HEX的路径creating hex file from .\Objects\STC_Printf...在工程文件夹内右键选择通过VSCODE打开。添加头文件路径。如果是第一次打开显示波浪线点击小灯泡选择编辑includePath设置。编译工程命令行烧录stcgal-p COM10-P stc15.\Objects\STC_Printf.hex 或者 stcgal-a-p COM10-P stc15.\Objects\STC_Printf.hex//-a 用来控制串口芯片DTR 引脚让目标芯片复位如果目标芯片启用了外部复位引脚P54时可以手动按复位按键后即可进入下载阶段。-p COM10:串口端口号-P stc15烧录目标芯片型号.\Objects\STC_Printf.hex烧录文件路径。烧录命令stcgal -p COM10 -P stc15 .\Objects\STC_Printf.hex⚡如果你的目标板没有实现UART DTR 流控制(不带免冷启动电路)看到Wait for mcu, please cycle power:之后这是在提示你请手动复位 mcu让单片机进入 isp 模式烧录命令stcgal -a -p COM10 -P stc15 .\Objects\STC_Printf.hex⚡如果你的目标板实现了UART DTR 流控制(带免冷启动电路)就不要添加带-a的参数不然还需要去复位一次单片机看到Waiting for MCU:之后这是在提示你请手动复位 mcu让单片机进入 isp 模式需要手动去复位或者重启目标板。(可参考前面的相关开源开发板电路了解STC免冷启动电路设计)stcgal命令行使用帮助C:\Users\Administratorstcgal-h usage:stcgal[-h][-a][-r RESETCMD][-P{stc89,stc12a,stc12b,stc12,stc15a,stc15,stc8,usb15,auto}][-p PORT][-b BAUD][-l HANDSHAKE][-o OPTION][-t TRIM][-D][-V][code_image][eeprom_image]stcgal1.6-an STC MCU ISP flashtool(C)2014-2018Grigori Goronzy and others https://github.com/grigorig/stcgalpositional arguments:code_image code segment file toflash(BIN/HEX)eeprom_image eeprom segment file toflash(BIN/HEX)options:-h,--help show this help message and exit-a,--autoreset cycle power automatically by asserting DTR-r RESETCMD,--resetcmd RESETCMD shell commandforboard power-cycling(instead of DTR assertion)-P{stc89,stc12a,stc12b,stc12,stc15a,stc15,stc8,usb15,auto},--protocol{stc89,stc12a,stc12b,stc12,stc15a,stc15,stc8,usb15,auto}protocolversion(default:auto)-p PORT,--port PORT serial port device-b BAUD,--baud BAUD transfer baudrate(default:19200)-l HANDSHAKE,--handshake HANDSHAKE handshake baudrate(default:2400)-o OPTION,--option OPTION setoption(can be used multiple times,see documentation)-t TRIM,--trim TRIM RC oscillator frequency inkHz(STC15series only)-D,--debug enable debug output-V,--version print version info and exit⛳注意事项在Keil工程中设置里面如果没有勾选生成HEX文件选项那么在VSCODE里面编译时也不会生成Hex文件的本质上在VSCODE里面编译还是调用的Keil软件本身。测试工程基于stc15w408as单片机。//STC15W408AS512字节的RAM8K FLASH//晶振频率11.0592MHz//波特率115200//stcgal -p COM10 -P stc15 .\Objects\STC_Printf.hex#includeSTC15F2K60S2.H#includeintrins.h#includestdio.hbit busy;//#define FOSC 11059200UL//#define BAUD 115200//sfr P_SW1 0xA2; //外设功能切换寄存器1#defineS1_S00x40//P_SW1.6#defineS1_S10x80//P_SW1.7voidDelay500ms();voidUartInit(void);//115200bps11.0592MHzvoidSendData(unsignedchardat);voidSendString(char*s);voidmain(){P1M00x00;P1M10x00;P3M00x00;P3M10x00;UartInit();Delay500ms();SendString(STC15F2K60S2\r\nUart Test !\r\n);while(1){P170x01;Delay500ms();printf(stcgal Tool Programmer \n\r);P170x00;Delay500ms();printf(Hello World \r\n);// SendString(STC15F2K60S2\r\nUart Test !\r\n);Delay500ms();printf(perseverance51 \n\r);}}voidUartInit(void)//115200bps11.0592MHz{SCON0x50;//8位数据,可变波特率AUXR|0x01;//串口1选择定时器2为波特率发生器AUXR0xFB;//定时器时钟12T模式T2L0xFE;//设置定时初始值T2H0xFF;//设置定时初始值AUXR|0x10;//定时器2开始计时}/*---------------------------- 发送串口数据 ----------------------------*/voidSendData(unsignedchardat){SBUFdat;while(!TI);//等待前一个数据发送完成TI0;//清除发送标志}charputchar(chardat){SendData(dat);returndat;}/*---------------------------- 发送字符串 ----------------------------*/voidSendString(char*s){while(*s)//检测字符串结束标志{SendData(*s);//发送当前字符}}voidDelay500ms()//11.0592MHz{unsignedchari,j,k;_nop_();_nop_();i22;j36;k227;do{do{while(--k);}while(--j);}while(--i);}

相关新闻

鸿蒙三方库 | harmony-utils之NotificationUtil长文本与多行通知详解

鸿蒙三方库 | harmony-utils之NotificationUtil长文本与多行通知详解

前言 当通知内容较多时,基本通知的显示空间有限。HarmonyOS支持长文本和多行通知样式,可以展示更多内容。pura/harmony-utils 的 NotificationUtil 封装了长文本通知发送方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解&…

2026/7/23 18:01:23 阅读更多 →
鸿蒙三方库 | harmony-utils之NotificationUtil基本通知发送详解

鸿蒙三方库 | harmony-utils之NotificationUtil基本通知发送详解

前言 通知是应用与用户沟通的重要渠道,用于消息提醒、进度展示等。pura/harmony-utils 的 NotificationUtil 封装了通知发送方法,支持基本文本通知。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解,帮助开发者快速掌握…

2026/7/23 18:01:23 阅读更多 →
SpringCloud:SpringCloudGateway对Forwarded和X-Forwarded-*处理分析

SpringCloud:SpringCloudGateway对Forwarded和X-Forwarded-*处理分析

一、SpringCloudGateway作为服务器端1、在接收到包含Forwarded或X-Forwarded-*的HTTP请求头时,会根据部署环境决定是否进行解析根据部署环境决定是否进行解析的代码可以如下类中找到:org.springframework.boot.autoconfigure.web.embedded.NettyWebServe…

2026/7/23 18:01:23 阅读更多 →

最新新闻

Tiva μDMA控制器寄存器详解与实战配置指南

Tiva μDMA控制器寄存器详解与实战配置指南

1. 项目概述与μDMA核心价值 在嵌入式系统开发中,尤其是面对Tiva™ TM4C1292NCZAD这类高性能ARM Cortex-M微控制器时,如何高效、实时地处理海量数据流,是决定系统性能上限的关键。无论是从ADC采集传感器波形,通过UART收发大量数据…

2026/7/23 18:15:28 阅读更多 →
【Python】新鲜出炉的海洋捕食者算法Python版本

【Python】新鲜出炉的海洋捕食者算法Python版本

2020年发表的海洋捕食者算法《Marine Predators Algorithm: A nature-inspired metaheuristic》。作者只在原论文中给出了MATLAB代码,网上也没有Python版本,我自己用Python重写了MATLAB代码。"""2020海洋捕食者算法 """ i…

2026/7/23 18:15:28 阅读更多 →
ARM Cortex-M GPIO寄存器配置详解:从原理到Tiva™ TM4C1292实战

ARM Cortex-M GPIO寄存器配置详解:从原理到Tiva™ TM4C1292实战

1. GPIO寄存器配置的核心逻辑与设计思路在嵌入式开发领域,尤其是基于ARM Cortex-M内核的微控制器(MCU)如Tiva™ TM4C1292NCZAD,通用输入输出(GPIO)接口是与外部世界交互的基石。很多开发者,尤其…

2026/7/23 18:15:28 阅读更多 →
一套系统服务多组织怎么选:集团、连锁、SaaS 创业的多租户方案对比(2026)

一套系统服务多组织怎么选:集团、连锁、SaaS 创业的多租户方案对比(2026)

一套系统服务多组织怎么选:集团、连锁、SaaS 创业的多租户方案对比(2026) 🌐 演示地址:http://ruoyioffice.com | 📦 源码1GitHub:ruoyi-office | 📦 源码2GitCode:ruoyi…

2026/7/23 18:15:28 阅读更多 →
自建商城还差支付?RuoYi Office 商城支付产品介绍:商品·订单·聚合支付一站打通

自建商城还差支付?RuoYi Office 商城支付产品介绍:商品·订单·聚合支付一站打通

自建商城还差支付?RuoYi Office 商城支付产品介绍:商品订单聚合支付一站打通 🌐 文档地址:http://ruoyioffice.com | 📦 源码1GitHub:ruoyi-office | 📦 源码2GitCode:ruoyi-office …

2026/7/23 18:15:28 阅读更多 →
Draw.io or diagrams.net 使用方法

Draw.io or diagrams.net 使用方法

0 Preface/Foreword 在工作中,经常需要用到框图,流程图,时序图,等等,draw.io可以完成以上工作。 official website:draw.io 1 Usage 1.1 VS code插件 draw.io可以扩展到VS code工具中。

2026/7/23 18:14:28 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻