STM32 VS Code 扩展用户指南(三)

简介: STM32 VS Code 扩展用户指南

STM32 VS Code 扩展用户指南(二)+https://developer.aliyun.com/article/1585371

5.3 清理构建配置

       在使用旧版本的 STM32CubeMX、STM32CubeCLT 或扩展本身编译项目的情况下,重建项目有时可能会失败。为防止或解决此问题,可通过设置或使用键盘快捷键 Ctrl + Shift + P 打开 VS Code 命令调板,然后搜索 CMake:删除缓存并重新配置。

5.4 无法启动调试

       如果调试器无法连接到电路板,请首先查看调试控制台,检查根本原因。如果看到 "初始化 STLINK 设备时出错。原因: 需要升级 STLINK 固件,只需点击升级 STLINK 固件功能即可解决此问题。

5.5 调试相关问题

       当涉及到大型复杂项目时,用户在尝试在自己的 PCB 上调试 STM32CubeMX 生成的应用程序时可能会遇到一些问题。

       我们的建议是创建一个新的空项目,其中只包含启动 MCU 所需的最小源文件集。如果该项目能在设备上编译、闪烁和调试,那么剩余的问题可能来自 STM32CubeMX 生成的代码、用户代码或选项字节不匹配。

六、将基于 STM32 的项目迁移到 VS Code v2.0.0

       将项目从一种工具迁移到另一种工具并不是一项复杂的任务,但确实需要遵循特定的步骤顺序。

       迁移所需的步骤数量因项目的原始起点和所依赖的工具而异。一般来说,迁移过程可分为三类。请确定最适合您项目的类别,以确保迁移成功。

  • 类别 1:项目使用 STM32CubeIDE/MX 创建,并由 1.0.0 版本的 STM32 VS Code 扩展管理
  • 类别 2:该项目使用 STM32CubeIDE/MX 创建,但未迁移至 STM32 VS Code 扩展的 1.0.0 版本
  • 类别 3:该项目不是使用 STM32CubeIDE/MX 生成的。在这种情况下,有两种可能的解决方案:
  • 如果项目使用 CMake,您可以通过单击 Import CMake project(导入 CMake 项目)按钮将其导入。
  • 如果项目不使用 CMake:
  • 单击 "创建空项目 "按钮创建一个空项目
  • 将所有文件和构建设置转移到基于 CMake 的空项目中

       要将基于类别 1 或类别 2 的项目迁移到新的 VS Code 解决方案,请按照以下步骤操作。

  1. 前提条件
确保已安装 STM32CubeMX v6.11.0、STM32CubeIDE v1.15.0 和 STM32CubeCLT v1.15.0 或更新版本。
  1. 进行备份
在更新任何工具或嵌入式软件时,建议创建还原点或备份副本,以防升级或迁移结果不理想。我们的建议是,要么在版本库中提交/标记,要么创建整个项目的备份。
  1. 更新 STM32CubeMX 和 STM32Cube 固件

迁移可能需要升级到新版本的 STM32CubeMX,这可能会引入新的 HAL 驱动程序或代码生成中的细微变化。

在继续将项目迁移到本地 CMake 项目之前,请确保更新后 STM32CubeIDE 中的构建和调试结果符合预期。为此

3.1 使用 STM32CubeIDE v1.15.0 或更新版本打开项目

3.2. 打开 STM32CubeMX ioc 文件,如果有新的 STM32Cube 固件包,则将项目迁移到该固件包上。

3.3. 重新生成代码  

3.4. 使用 STM32CubeIDE 构建和调试项目  


  1. 如果这些步骤已顺利完成,请关闭 STM32CubeIDE,因为迁移过程的剩余部分将在文件系统上进行。
  2. 删除旧文件
    由于新的 STM32CubeMX 和 VS Code 解决方案所引入的概念变化,用户有必要手动删除某些与项目相关的元数据。
    STM32CubeMX 会在后续步骤中再次生成相应的元数据,并通过 VS Code 扩展的更新版本进一步增强。代码本身保持不变。
    在继续删除元数据文件之前,我们建议创建项目的备份还原点。
    a. 如果您的项目仅通过 STM32CubeIDE 访问过,尚未使用 STM32 VS Code for 扩展打开,请删除以下文件:
a.1. .settings/ : folder containing some metadata
a.2. .cproject : file containing build configuraitons for STM32CubeIDE
a.3. .project : file containing project natures and paths to c/h folders and/or files
  1. b. 如果您的项目以前使用过 STM32CubeIDE 和 STM32 VS Code 扩展 1.0.0,除前面提到的文件外,请删除以下文件:
b.1. .vscode folder
b.2. build folder
b.3. cmake folder
b.4. CMakeLists.txt
b.5. CMakePresets.json
b.6. nvcpkg_configuration.json
  1. 删除指定文件后,我们将开始重新创建基于 CMake 的新构建结构。只有 STM32CubeMX 可以管理这个新结构。
  2. 使用 STM32CubeMX 生成 CMake 项目
    要继续迁移过程,请按照以下步骤操作:

5.1. 启动 STM32CubeMX 6.11.0 或更新版本(单机模式,不在 STM32CubeIDE 内)  

5.2. 加载要迁移的项目  

5.3. 访问项目管理器面板  

5.4. 将 "工具链/集成开发环境 "从 "STM32CubeIDE "切换到 "CMake"。

5.5. 点击 "GENERATE CODE(生成代码)"按钮

  1. 当选择 CMake 作为工具链时,STM32CubeMX CMake 生成器会生成以下文件:
cmake\ 文件夹: 此文件夹包含 CMake 相关文件:
    stm32cubemx" 文件夹: 此文件夹包含 CMakeLists.txt。只有 STM32CubeMX 管理此文件
    Gcc-arm-none-eabi.cmake: 由 STM32CubeMX 生成后,用户可以编辑该文件
CMakeLists.txt: 由 STM32CubeMX 生成后,用户拥有并管理此文件
CMakePresets.json: 由 STM32CubeMX 生成后,用户拥有并管理此文件
STM32xxxxxxx_FLASH.ld: 由 STM32CubeMX 生成的链接器脚本,表明 CMake 被选为工具链
  1. 现在您可以通过命令行编译您的项目,方法是依次输入以下命令:
PROJ_FOLDER$> cmake -B build -G Ninja
PROJ_FOLDER$> cmake --build build -j
  1. 设置新的 VS Code 环境
    对于 VS Code 的新用户来说,使用 VS Code 中的配置文件概念将 STM32 环境沙盒到自己的配置文件中可能会很有帮助。点击此处了解更多信息。
    要将项目导入 VS Code,请按照以下步骤操作:
6.1. 打开 VS Code 并安装新扩展 2.0.0 版,该版本可与新的 STM32CubeMX 6.11.0 或更高版本以及 STM32CubeCLT 1.15.0 或更高版本一起使用。
6.2. 使用 "Import local project(导入本地项目)"按钮/命令,指向 STM32CubeMX 生成的项目文件夹。

  1. 导入项目后,VS Code 扩展会自动生成以下文件:

.vscode 文件夹: 包含元数据的文件夹:

c_cpp_properties.json: 该文件可确保 C/C++ 编辑器索引正常工作

extensions.json: 该文件提供额外的扩展建议

launch.json: 此文件自动生成调试配置

tasks.json: 此文件是执行某些任务(如加载 flash)的模板

  1. 注意:

首次在 VS Code 中打开项目时,可能会遇到一些提示,例如

选择 CMake 预设: 选择调试预设

安装 Better C++ Syntax: 高亮显示 C 和 C++ 语法的高效扩展程序

配置 CMake 选项可见性: 使用设置中的 cmake.options 属性自定义视图

  1. 在新生成的 CMakeList.txt 文件中添加您的私有文件夹源路径
    如果您的项目包含私有文件夹,在 CMakeList.txt 文件中包含其路径至关重要。
  2. 如果需要,更新 CMake 文件以使用项目中已有的链接器脚本:
    这可以在 \cmake\gcc-arm-none-eabi.cmake 文件中修改。示例
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -T \"${CMAKE_SOURCE_DIR}/STM32F407VGTx_FLASH.ld\"")
  1. 构建和调试项目
    更多详情,请参阅 "构建项目 "和 "调试项目 "部分。
    对于高级调试功能,我们建议同时使用 STM32CubeIDE 作为调试器工具。更多详情,请参阅 "使用 STM32CubeIDE 进行高级调试"。
  2. 恭喜您!您现在已经设置好了。您可以随时在 STM32CubeMX 中更新配置。生成的 CMake 文件和源代码可在 VS Code 中正常运行。

七、提示和技巧

7.1 防止弹出窗口

       当您打开资源中提到的一些外部网站时,VS Code 可能会提示您,因为它不会自动信任这些网站。

       要避免这种提示,请打开 "配置受信任的域 "并信任所需的域。

7.2 使用 STM32CubeIDE 进行高级调试

       如果您需要 VS Code 中不具备的高级调试功能,您可以将 STM32CubeIDE 用作 VS Code 的辅助调试工具。

       为此,您需要将项目创建的 elf 文件从 VS Code 导入 STM32CubeIDE。这样,您就可以使用 STM32CubeIDE 的所有基本和高级调试功能。尽管没有导入 C/C++ 代码,源代码查找仍可正常运行。通过这种方法,您可以结合两种工具的优势,使用 VS Code 进行编辑、编译和调试,同时使用 STM32CubeIDE 的高级调试功能。

       要开始使用,请打开 STM32CubeIDE 并选择文件 > 导入 > C/C++ > STM32 Cortex®-M 可执行文件。

       然后,浏览并选择 elf 文件,并指定目标设备。

 

       如有必要,请编辑启动配置并点击调试。

       就是这样!现在,您可以使用 STM32CubeIDE 的高级调试功能了。

7.3 保留已安装的多个 STM32 VS Code 扩展程序版本:

       要在安装最新版本的同时保留以前版本的 STM32 VS 代码扩展,需要按照以下步骤创建新的配置文件:

  • 导航至 VS Code 配置文件并创建新配置文件
  • 为配置文件指定一个名称,然后选择 "创建 "完成该过程

  • 创建配置文件后,继续安装最新版本的 STM32 VS Code 扩展程序
  • 现在,您有两个配置文件:一个包含 v1.0.0,另一个包含 v2.0.0

        对于 VS Code 的新用户,请在此处阅读有关配置文件的更多信息。


目录
相关文章
|
2月前
|
C++
STM32 VS Code 扩展用户指南(二)
STM32 VS Code 扩展用户指南
54 3
|
2月前
|
JSON 编解码 C++
STM32 VS Code 扩展用户指南(一)
STM32 VS Code 扩展用户指南
49 2
|
2月前
|
传感器
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
【8月更文挑战第29天】本文详细介绍在STM32F103C8T6上构建可扩展且可移植的DHT11温湿度传感器驱动的步骤,包括硬件与软件准备、硬件连接、驱动代码编写及测试。通过这些步骤,可根据实际项目需求优化和扩展代码。
|
5月前
|
API C++ 容器
VSCode扩展
VSCode扩展
|
10月前
|
JavaScript 前端开发 Java
❤️5 个使重构变得容易的 VS Code 扩展❤️(建议收藏)
❤️5 个使重构变得容易的 VS Code 扩展❤️(建议收藏)
68 1
|
JavaScript API 开发者
为依赖Angular.js的上古项目给VSCode编写$scope定义跳转扩展插件
虽然Angular.js停止更新已经一年了,但依赖它的上古时代的项目并不少。由于都是使用js开发,很难为其提供很好的维护,所以直到今天开发维护也并不愉快。可以说没有开发插件的支持,再成熟老练的框架都发挥困难。
156 0
为依赖Angular.js的上古项目给VSCode编写$scope定义跳转扩展插件
|
前端开发
Web前端 — VSCode实用扩展插件
在Web前端开发中常用的 VSCode 插件 内容来源 前端VSCode常用插件-快捷键-以及常用技巧-pink老师 下面介绍插件如何下载和使用 如有帮助,请关注点赞支持博主,后期会出其他相关软件安装教程!!!
201 0
|
存储 机器学习/深度学习 传感器
vscode 常用的扩展插件有哪些?
VS Code有许多常用的扩展插件,下面是一些常见且受欢迎的扩展插件: 1. Live Server:提供了一个本地开发服务器,可以在编辑器中实时预览和调试HTML、CSS和JavaScript文件。 2. Prettier - Code formatter:自动格式化代码,使其符合一致的编码风格。 3. GitLens — Git supercharged:增强了对Git存储库的操作和视觉化,可以轻松查看文件的Git历史、作者信息以及行级别的注释和更改。 4. ESLint:集成了ESLint静态代码分析工具,用于在编写代码时捕获常见的错误和编码规范问题。 5. Visual St
277 0
【STM32】【vscode编译】 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
【STM32】【vscode编译】 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
399 0
|
3月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
419 0
下一篇
无影云桌面