在使用 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

相关推荐

  • 如何用pbootcmsAPI接口开发微信小程序UNIAPP

    使用 PbootCMS 的 API 接口结合 UniApp 开发微信小程序,可以实现高效的内容管理和展示。以下是一个完整的开发流程,包括 API 接口设置、小程序功能设计和开发细节。 1. 准备工作1.1 配置 PbootCMS API 接口PbootCMS 提供 API 功能,需在后台开启并配置:登录 PbootCMS 后台管理。前往 系统管理 -> AP…

    2024年11月28日
    00
  • 使用 CLion 编写 C51 (即8051微控制器) 程序时,遇到 sbit 相关报错

    在使用 CLion 编写 C51 (即8051微控制器) 程序时,遇到 sbit 相关报错,通常是因为 CLion 默认并不支持8051的特殊语法和寄存器定义方式。sbit 是 C51 编译器中的一个关键字,用来将一个单独的位(bit)映射到特定的硬件寄存器或端口引脚。常见的报错及解决方法sbit 语法问题: CLion 本身不支持 C51 特有的语法,sb…

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

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

    2025年1月18日
    00
  • C++ STL vector 类:动态数组的高效应用

    vector 是 C++ 标准库(STL)中最常用的容器之一,它提供了一个动态数组的实现,能够根据需要自动扩展或收缩。vector 是一个线性数据结构,具有高效的随机访问能力和动态扩展能力,广泛应用于需要频繁增删元素且对随机访问要求较高的场景。 1. vector 类简介 vector 是 C++ 标准模板库(STL)中提供的一种容器类,它类似于动态数组(d…

    2024年11月25日
    00
  • 使用 CasaOS 搭建 Lsky Pro(兰空图床)快速实现图床的项目部署

    使用 CasaOS 搭建 Lsky Pro(兰空图床)可以快速实现图床的部署,并通过 Docker 管理其运行环境。以下是详细步骤,包括远程管理图片的设置。 一、环境准备 3. 配置域名(可选)如果需要远程管理图片,建议配置域名和 HTTPS,方便图床在线使用。 二、Docker 部署 Lsky Pro 1. 获取 Lsky Pro Docker 镜像 运行…

    2024年11月23日
    00
  • 开发中如何在HarmonyOS NEXT中处理页面间的数据传递的

    在 HarmonyOS NEXT 中,页面间的数据传递是应用开发中的一个常见需求。HarmonyOS 提供了多种方法来实现页面间的数据传递,通常包括 通过 Intent(隐式和显式)传递数据、通过路由传递数据、以及使用 全局状态管理。下面将介绍几种常用的处理方式。1. 使用 Ability 和 Intent 传递数据在 HarmonyOS 中,每个页面都是一…

    2024年11月29日
    00
  • 使用 Redis 和 Spring Cache 实现基于注解的缓存功能

    Spring Cache 提供了一种简单的方法来通过注解对方法的返回结果进行缓存。结合 Redis,可以构建一个高效的分布式缓存解决方案。以下是详细实现步骤: 1. 引入必要的依赖在 pom.xml 文件中添加以下依赖(适用于 Spring Boot 项目): 2. 配置 Redis在 application.yml 或 application.proper…

    2024年12月1日
    00
  • 在 Delphi 中创建一个像 C# 那样的 DLL 类库(即面向对象的 DLL)

    在 Delphi 中创建一个像 C# 那样的 DLL 类库(即面向对象的 DLL)可以通过以下步骤实现:1. 创建 Delphi DLL 项目打开 Delphi。选择 File > New > Other > Dynamic-Link Library。在新项目中,默认生成的代码通常是 exports 部分,其中包含了 DLL 导出的函数。2. 定义类你可以在…

    2024年11月29日
    00
  • Gradle 在国内访问官方仓库

    Gradle 在国内访问官方仓库(如 Maven Central 或 JCenter)时,可能会受到网络限制影响,速度较慢甚至无法连接。为解决此问题,可以配置国内镜像源,提高构建效率 推荐的国内镜像源以下是常用的国内 Gradle 仓库镜像:阿里云 Maven 仓库:地址:https://maven.aliyun.com/repository/public华…

    2024年11月26日
    00
  • Windows 远程桌面连接时出现报错 “由于没有远程桌面授权服务器可以提供许可证” 的问题

    Windows 远程桌面连接时出现报错 “由于没有远程桌面授权服务器可以提供许可证” 的问题,通常是由于以下原因之一: 以下是解决该问题的步骤: 1. 删除客户端缓存的许可证远程桌面客户端会缓存许可证信息,可能会因为缓存问题导致连接失败。操作步骤:打开本地计算机的 注册表编辑器:按下 Win + R,输入 regedit,回车。导航到以下路径: 删除 MSL…

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

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

    2024年11月29日
    00
  • Spring Boot 项目中对接海康摄像头的视频流播放

    在 Spring Boot 项目中对接海康摄像头的视频流播放,通常需要利用摄像头的 RTSP 协议,将实时视频流解码并转发到前端以实现播放功能。以下是具体实现步骤: 1. 项目准备 前置条件 RTSP 流地址格式 海康摄像头的 RTSP 流地址格式通常为: 例如: 2. 后端实现视频流转发 为了在后端转发视频流到前端,我们需要解码 RTSP 流并将其转为适配…

    2024年11月24日
    00
  • Docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像方法

    使用 Docker 快速部署 Nginx、Redis、MySQL、Tomcat 以及制作镜像 通过 Docker,开发者可以快速部署和管理各种服务。本文介绍如何快速使用 Docker 部署 Nginx、Redis、MySQL 和 Tomcat,以及如何制作自定义镜像。 1. Docker 基础准备 安装 Docker 如果还未安装 Docker,可按照以下步…

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

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

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

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

    2024年11月24日
    00

发表回复

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

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信