在使用 VS Code 和 Keil 协同开发 STM32 程序

在使用 VS CodeKeil 协同开发 STM32 程序时,可以利用 Keil 强大的编译器VS Code 的高效代码编辑功能,结合起来提高开发效率。以下是实现协同开发的详细步骤:

前置准备
安装 Keil
确保已安装 Keil MDK-ARM,并配置好开发环境。
Keil 下载地址:Keil 官方网站
安装 VS Code
下载并安装最新版本的 VS CodeVS Code 官网
安装 ARM Compiler
Keil 自带 ARM Compiler,可以直接使用。如果需要单独安装,确保与 Keil 的版本匹配。

步骤一:配置 Keil 项目
新建或打开 Keil 项目
使用 Keil MDK 创建 STM32 项目,并完成初步配置(包括目标设备、外设库等)。
生成项目工程文件
在 Keil 中保存项目文件(如 *.uvprojx*.uvproj 文件)。
找到编译器路径
确认 Keil 使用的 ARM 编译器路径,通常位于:makefile

C:\Keil_v5\ARM\ARMCC\bin

C:\Keil_v5\ARM\ARMCLANG\bin

步骤二:在 VS Code 中配置项目
安装 VS Code 扩展
打开 VS Code,安装以下扩展:C/C++(Microsoft 提供)
Cortex-Debug
ARM Assembly
打开项目文件夹
使用 VS Code 打开 Keil 项目所在的文件夹。
配置 C/C++ Intellisense
在项目根目录下创建或编辑 c_cpp_properties.json

{
  "configurations": [
    {
      "name": "Keil STM32",
      "includePath": [
        "${workspaceFolder}/**",
        "C:/Keil_v5/ARM/ARMCC/include"
      ],
      "defines": [
        "STM32F103xB", // 根据你的芯片型号修改
        "__MICROLIB"
      ],
      "compilerPath": "C:/Keil_v5/ARM/ARMCC/bin/armcc.exe",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "gcc-arm"
    }
  ],
  "version": 4
}

添加调试配置

  • .vscode 文件夹下创建或编辑 launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Cortex Debug",
      "type": "cortex-debug",
      "request": "launch",
      "servertype": "openocd",
      "cwd": "${workspaceFolder}",
      "executable": "${workspaceFolder}/build/your_project.elf", // 替换为你的 ELF 文件路径
      "device": "STM32F103C8", // 替换为你的设备型号
      "configFiles": [
        "interface/stlink.cfg",
        "target/stm32f1x.cfg"
      ]
    }
  ]
}

步骤三:同步编辑和编译
在 VS Code 中编辑代码
使用 VS Code 的语法高亮和 Intellisense 快速编写代码。
注意:代码文件的目录结构需与 Keil 项目保持一致。
在 Keil 中编译
编辑完成后,切换到 Keil,点击 Build 按钮完成代码编译。
设置自动同步
如果频繁切换文件,可借助 VS Code 的终端执行 build.bat,以实现自动调用 Keil 的编译器。
示例 build.bat 文件:

@echo off
set KEIL_PATH=C:\Keil_v5
"%KEIL_PATH%\UV4\UV4.exe" -b your_project.uvprojx -o build.log

步骤四:调试与烧录
在 Keil 中烧录程序
Keil 提供直接烧录支持,连接调试器(如 ST-Link)后,可以直接下载代码到设备。
在 VS Code 中调试
配置 launch.json 后,点击调试按钮,可以使用 Cortex-Debug 扩展进行调试。

步骤五:优化工作流(可选)
结合 CMake
如果希望完全脱离 Keil 的 UI,可以将 Keil 的工程文件转为 CMake 项目,直接在 VS Code 中完成所有构建工作。
Makefile 集成
通过 Makefile 或 Ninja 构建系统调用 Keil 的编译工具链,实现自动化构建。
Git 管理代码
使用 Git 管理项目版本,可以在 VS Code 的 Source Control 面板中方便地提交和管理代码。

通过以上配置,你就可以实现 VS Code 和 Keil 的高效协同开发,既利用了 Keil 强大的编译器和烧录能力,又享受了 VS Code 出色的编辑体验!

发布者:myrgd,转载请注明出处:https://www.object-c.cn/5005

Like (0)
Previous 2024年12月1日 下午1:40
Next 2024年12月2日 上午11:43

相关推荐

  • Java 8 到 Java 17 的升级涉及一些关键变化

    JDK 8 升级到 JDK 17 指南Java 8 到 Java 17 的升级涉及一些关键变化,包括语言特性、API 更新和性能改进。以下是一些升级要点:语法和语言特性:记录类(Record Class):Java 14 引入了记录类,提供了一种简化创建不可变数据对象的方式。密封类(Sealed Classes):Java 15 引入了密封类,允许开发者限制…

    2024年11月27日
    00
  • 在使用 PHP 抓取 HTTPS 资源时,会遇到一些常见问题

    在使用 PHP 抓取 HTTPS 资源时,可能会遇到一些常见问题。这些问题通常与 SSL 配置、证书验证或 PHP 设置相关。以下是常见问题及其解决方法的汇总: 1. SSL 证书验证失败问题描述当使用 file_get_contents、cURL 等方法访问 HTTPS 资源时,可能会遇到类似以下错误: 解决方法更新 cacert.pem 文件下载最新的根…

    2024年12月2日
    00
  • 远程仓库 ,从GitHub拉取代码失败的解决办法

    从GitHub拉取代码失败通常由以下几种原因引起:网络问题、认证失败、远程仓库配置错误等。以下是常见的失败场景及解决办法。 1. 网络问题症状连接超时。报错如:fatal: unable to access ‘https://github.com/…’: Failed to connect to github.com port 443: Connecti…

    2024年11月28日
    00
  • 在 Mac 上,Google Chrome 无法打开网页的问题

    在 Mac 上,Google Chrome 无法打开网页可能由多个因素引起。以下是一些常见的原因及解决方法: 1. 检查网络连接 确保你的 Mac 已连接到互联网,尝试使用其他设备(如手机或其他电脑)打开相同的网页,确认问题是否出在设备本身或网络。 2. 清除浏览器缓存和历史记录 长期积累的缓存和浏览数据可能导致加载问题。尝试清除缓存和历史记录: 3. 禁用…

    2024年11月23日
    00
  • 在 MacOS 上开启 HIDPI 模式的多种方案

    在 MacOS 上开启 HIDPI 模式可以帮助提升显示器的清晰度,尤其是在使用 Retina 屏幕时。以下是几种常见的方案:1. 通过终端命令启用 HIDPI 模式打开 终端 (Terminal)。输入以下命令: 然后重启 Mac,或者注销当前用户并重新登录。这将启用隐藏的高分辨率模式。2. 通过 SwitchResX 工具SwitchResX 是一个强大…

    2024年11月27日
    00
  • java中使用 Arrays.asList()新增报错问题解决方法

    Arrays.asList() 返回的是一个固定大小的列表。如果你尝试使用该列表进行添加、删除等修改操作,会抛出 UnsupportedOperationException 异常。这是因为 Arrays.asList() 返回的列表背后是一个数组,它的大小是固定的,不能进行动态修改。解决方法使用 ArrayList 包装 Arrays.asList() 的结…

    2024年12月2日
    00
  • 搭建一个基于 Node.js 和 MySQL 的微信小程序

    搭建一个基于 Node.js 和 MySQL 的微信小程序后台可以帮助你管理数据、处理请求、存储用户信息等。下面是如何从头开始搭建一个基本的微信小程序后台系统的详细步骤。 1. 环境准备 确保你已经安装以下开发工具: 2. 创建 Node.js 项目 首先,创建一个新的 Node.js 项目: 2. 安装必要的依赖包: 使用以下命令安装这些依赖: 配置 My…

    2024年11月24日
    00
  • synchronized 和自适应锁

    Java 中的 synchronized 是一种常用的线程同步机制,它通过内置的锁(监视器锁,Monitor Lock)来保护代码块或方法的并发安全。从 JDK 1.6 开始,synchronized 进行了许多优化,其中一个重要的机制是自适应锁(Adaptive Spinning)。 1. 什么是自适应锁? 自适应锁是一种优化锁竞争和线程上下文切换性能的技…

    2024年11月21日
    00
  • 在Spring 项目中使用 Spring AI 模块的教程

    Spring AI 是 Spring 项目中一个面向 AI 应用的模块,旨在通过集成开源框架、提供标准化的工具和便捷的开发体验,加速 AI 驱动应用程序的构建和部署。以下是 Spring AI 的一些常见功能和使用方法的详解。 1. 项目背景 Spring AI 主要用于: 2. 环境配置 前置条件 添加依赖 在 pom.xml 中添加以下依赖: 或者在 b…

    2024年11月24日
    00
  • 在微信公众号开发中获取 access_token 调用微信服务器端接口

    在微信公众号开发中,获取 access_token 是调用微信服务器端接口的第一步。access_token 是接口调用的凭据,可以通过微信公众号的接口调用。 以下是获取 access_token 的步骤和代码示例: 1. 获取 Access Token 的接口 调用微信服务器接口获取 access_token: 接口地址: 返回示例: access_tok…

    2024年12月3日
    00
  • Redis中如何使用lua脚本redis与lua的相互调用方法

    在 Redis 中,Lua 脚本 提供了一种强大的方式来执行原子操作,可以在 Redis 服务器上直接执行 Lua 代码,从而避免了多次网络往返和保证操作的原子性。Redis 内置了对 Lua 脚本的支持,通过 EVAL 命令来执行脚本,EVALSHA 则用于执行已经加载到 Redis 服务器的脚本。1. Redis 与 Lua 脚本的基本交互1.1 基本的…

    2024年11月28日
    00
  • 云服务器安装宝塔强制重启导致MySQL无法启动

    在云服务器上进行 强制重启 后,MySQL 无法启动的情况,通常是由于以下几种原因引起的。强制重启可能会导致 MySQL 数据库的文件系统损坏、配置文件丢失、锁定文件问题等,下面是一些排查和解决方法。1. 检查 MySQL 错误日志MySQL 无法启动时,首先需要查看 MySQL 的错误日志,以获取更多的错误信息。错误日志通常位于 /var/log/mysq…

    2024年11月29日
    00
  • java算法— 动态规划之斐波那契数列模型

    斐波那契数列是动态规划中一个经典的模型,其递推关系简单易懂,非常适合作为入门练习。斐波那契数列的定义如下: 在 Java 中,可以通过递归、带记忆化的递归、迭代和优化空间复杂度的方式实现斐波那契数列。 1. 递归实现 最直观的实现,但存在大量重复计算,时间复杂度为 O(2n)。 2. 带记忆化的递归 通过一个数组存储已计算的值,避免重复计算,时间复杂度降为 …

    2024年11月21日
    00
  • 安装 Laravel 11 + Filament 详细教程

    安装Laravel 11之前选确保安装了Composer 管理器,接下来的步骤是通过Composer 包管理器安装完成的。 一、前提条件 二、使用 Composer 创建新的 Laravel 11 项目 三、在现有项目中添加 Laravel 11(如果是集成到现有项目) 请注意,在实际安装过程中,可能会遇到各种问题,如权限问题(在 Linux 下,如果没有足…

    2025年1月18日
    00
  • 在 Spring Boot 中实现定时任务,可以使用以下三种方式

    1. 使用 @Scheduled 注解 这是 Spring 提供的简单方式,基于注解实现定时任务。 步骤: 3. 创建任务类使用 @Scheduled 注解定义定时任务: 4. @Scheduled 参数详解 2. 使用 ScheduledExecutorService 如果任务管理需要更灵活,可以使用 Java 自带的线程池。 示例: 3. 使用 Quar…

    2024年11月26日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信