Keil和VSCode协同开发STM32程序

系列文章

STM32单片机系列专栏

C语言术语和结构总结专栏


文章目录

1. 配置环境

2. 测试打开工程

3. 测试编译工程


随着项目的复杂度上升,开发者不仅需要强大的硬件支持,还需要一个高效和灵活的开发环境。 vscode是一款集成大量可以便携开发插件的代码编辑器, Keil MDK是常用的嵌入式开发工具,但是其编程界面缺乏功能性。 通过在VSCode中集成Keil的编译和调试功能,可以在享受VSCode现代化代码编辑代码的同时,不失去Keil的硬件调试能力,并且两端的代码可以实时更新。


1. 配置环境

  • 首先是最基本的c语言环境配置,除了需要安装C语言插件,还需要安装Mingw。如果没有搭建C环境,点击链接看一下这篇文章。
  • vscode搭建C/C++环境
  • 如果想判断电脑有没有mingw,参考下面的步骤

打开cmd验证是否安装成功,输入:g++ --version

出现这个就代表电脑已经安装了mingw

  • 配置完成C环境后,也就是vscode中安装了下面三个插件,C/C++,C/C++ Extension Pack,C/C++ Themes,并且安装了mingw。
  • 接着打开vscode,点击左侧的扩展插件(或者按Ctrl+shift+X),打开插件搜索框。搜索 Keil Assitant,点击下载并安装

  • 安装完成后,点击 Keil Assitant 的设置,点击扩展设置,在这里需要填写你已经安装好的 Keil 程序的安装路径,因为编译程序其实是 vscode 调用 Keil 的编译功能实现在 VSCOE 上编译工程。
  • 首先在桌面上右键keil,然后打开文件所在位置,找到uv4.exe的文件

  • 接着复制这个地址粘贴到vscode的扩展插件中。

  • 此时keil扩展就完成配置了。

2. 测试打开工程

  • 首先点击左边的资源管理器(Ctrl+shift+E)

  • 在打开的资源管理器中可以看到KEIL UVISION PROJECT, 并且在右边有一个黄色和绿色的加号,点击这个加号,然后就可以像keil mdk一样,打开工程文件

  • 打开工程文件之后,可以做一个测试,用vscode打开main.c, 接着用keil也打开main.c,在vscode中修改代码后并保存,接着打开keil,会弹出下面的提示框,点击Yes to All,keil即可更新vscode中修改后的代码。

3. 测试编译工程

完成上面的配置和测试后,可以连接单片机,这时在vscode的资源管理器中,可以看到下面的状态。上面有一个打开的工程文件,用于修改代码,在最下面的KEIL UVISION PROJECT中,点击Project,在Target的右边可以看到和keil中一样的编译和下载按钮,也就是说除了对于单片机或者基础文件的配置以及设置需要在keil中操作修改,对于代码的修改、编译和下载均可以用vscode实现。

  • 如果vscode出现红色波浪线表示不认识某些库的内容,可以手动include库来解决问题。

  • 如果出现中文乱码,参考下面这篇文章解决。

VScode中文注释乱码的四种解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2496.shtml

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

相关文章

C++中的list类模拟实现

目录 list类模拟实现 list类节点结构设计 list类非const迭代器结构设计 迭代器基本结构设计 迭代器构造函数 operator()函数 operator*()函数 operator!()函数 operator(int)函数 operator--()函数 operator--(int)函数 operator()函数 operator->()函数 list…

TiDB 6.x 新特性解读 | Collation 规则

对数据库而言,合适的字符集和 collation 规则能够大大提升使用者运维和分析的效率。TiDB 从 v4.0 开始支持新 collation 规则,并于 TiDB 6.0 版本进行了更新。本文将深入解读 Collation 规则在 TiDB 6.0 中的变更和应用。 引 这里的“引”,…

如何在 Docker 和 DigitalOcean Kubernetes 上部署 Kafka

Apache Kafka 是一个开源的分布式事件和流处理平台,使用 Java 编写,旨在处理要求严苛的实时数据流。它被设计为具有容错能力,并支持每个集群拥有数百个节点。高效运行更多数量的节点需要容器化和编排流程以实现最优资源使用,例如使…

Modbus转Profinet网关接称重设备与工控机通讯

Modbus转Profinet网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Modbus转Profinet网关可提供单个或多个RS485接口,使得不同设备之间可以顺利进行通信,进一步提升了工业自动化程度。 通过使用Modbus转Pr…

相亲平台app小程序

相亲平台app小程序是一种基于手机应用的微型程序,专为在线相亲交友活动设计。它提供了一系列的功能,旨在帮助用户更方便、更高效地找到心仪的伴侣。 首先,用户可以在个人资料部分上传照片、填写个人资料、设置兴趣爱好等信息,以便…

Scala Extention

正则 import scala.util.matching.Regex import scala.util.matching.Regex.Match/*----------------------------------------------------------匹配 */ val rtr "^(\\w)([a-z0-9]{2,})\\.(com|cn|edu|org)$"; val regex:Regex rtr.r // 同 Java 的简单匹配 val…

Electron+Vue3+ElectronForge整合 - 打包时整合 -分步打包

说明 本文介绍一下 Electron Vue3 的打包整合的基本操作。实现的效果是 : 1、一个正常的Vue3项目; 2、整合加入 Electron 框架 :开发时 Electron 加载的是开发的vue项目; 3、完成打包时整合:3.1 先完成vue3项目的正常…

Laravel 6 - 第十一章 中间件

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

Docker搭建NetBox

NetBox 是一个开源的数据中心基础设施管理(DCIM)和IP地址管理(IPAM)平台,用于管理网络设备、服务器、机架、端口、IP 地址和子网。它提供了一个直观的Web界面,允许用户跟踪资产、分配IP地址、规划网络架构以及生成报告。 实际应用场景 网络管理&#x…

http实现反向代理

http实现反向代理 需要安装http-proxy-middleware插件 npm i http-proxy-middleware准备proxy.html, 等会加载proxy.html可直接发起fetch请求 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equ…

深度解析:云计算的三宝——IaaS、PaaS和SaaS

4月22日&#xff0c;腾讯宣布旗下协作SaaS产品全面接入腾讯混元大模型&#xff0c;除去企业微信、腾讯会议、腾讯文档等“一门三杰”产品&#xff0c;腾讯乐享、腾讯电子签、腾讯问卷、腾讯云AI代码助手等协作SaaS产品也都已实现智能化升级。大模型应用落地再加速。 那么什么是…

Java基础入门day37

day37 js小案例 全选&#xff0c;全不选和反选 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Doc…

2024年深圳杯东三省数学建模联赛A题论文首发第二种思路

深圳杯A题论文代码分享资料链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1L2NVgoefSW-yuqZjEB3wcw 提取码&#xff1a;sxjm 问题一 数据转换&#xff1a; 首先&#xff0c;我们将监测站的经纬度坐标转换为基于米的笛卡尔坐标系。这是因为在地面上的大尺度距离…

HarmonyOS开发案例:【音乐播放器】

介绍 使用ArkTS语言实现了一个简易的音乐播放器应用&#xff0c;主要包含以下功能&#xff1a; 播放应用中的音频资源文件&#xff0c;并可进行上一曲、下一曲、播放、暂停、切换播放模式&#xff08;顺序播放、单曲循环、随机播放&#xff09;等操作。结合后台任务管理模块&…

使用python批量采集国家法律法规数据库——科学学习使用!遵守法律!绿色合规!

模块使用: 使用Python的requests模块进行网络请求操作。 目标网址: 国家法律法规数据库网址 实现步骤: 模拟浏览器请求: 设置请求头信息模拟浏览器行为。 请求网址并循环获取数据: 循环页面以获取数据&#xff0c;设置查询参数并使用requests.get()请求数据。 提取数据并保存文…

安全小课堂丨什么是暴力破解?如何防止暴力破解

什么是暴力破解&#xff1f; 暴力破解也可称为穷举法、枚举法&#xff0c;是一种比较流行的密码破译方法&#xff0c;也就是将密码进行一一推算直到找出正确的密码为止。比如一个6位并且全部由数字组成的密码&#xff0c;可能有100万种组合&#xff0c;也就是说最多需要尝试10…

JWT原理解析

一、概述 虽然现在很多的开发框架会支持JWT的使用&#xff0c;但是对JWT还是没有一个详细的了解&#xff0c;有很多疑惑&#xff1a; JWT比之前的session或者token有什么好处&#xff1f;JWT的构成元素是什么&#xff1f;JWT从生成到使用的详细流程&#xff1f; 二、 JWT 2…

SPI Flash and External SPI RAM(基于ESP32)

主要参考资料&#xff1a; 乐鑫ESP-IDF资料SPI Flash API: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-reference/peripherals/spi_flash/index.html 乐鑫ESP-IDF资料SPI Flash and External SPI RAM Configuration: https://docs.espressif.com/pro…

场景 - 分库分表

分什么 数据量大分表&#xff0c;并发大分库 分表字段如何选择 如果对交易订单进行分表&#xff0c;可以选择的东西很多&#xff0c;比如说商户id&#xff0c;用户id&#xff0c;地区等等 分表的时候要考虑到数据倾斜问题 数据倾斜 比如说按商户号进行分表&#xff0c;一共…

pnpm 安装后 node_modules 是什么结构?为什么 webpack 不识别 pnpm 安装的包?

本篇研究&#xff1a;使用 pnpm 安装依赖时&#xff0c;node_modules 下是什么结构 回顾 npm3 之前&#xff1a;依赖树 缺点&#xff1a; frequently packages were creating too deep dependency trees, which caused long directory paths issue on Windowspackages were c…