littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于CMake的STM32嵌入式开发转换项目

项目简介

本项目的目标是把采用Keil嵌入式开发工具(像Keil µVision)开发的STM32项目,转换为用CMake进行构建和管理。借助CMake的跨平台特性与强大构建系统,能够简化STM32项目的开发流程,提升项目的可维护性和可移植性。

项目的主要特性和功能

  1. 跨平台构建:支持在Windows和Linux系统上利用CMake开展项目构建。
  2. 工具链配置:自动配置GNU Arm Embedded Toolchain,保证编译器和工具链的正确使用。
  3. IDE集成:支持Visual Studio Code的C/C++扩展,可实现智能代码补全和语法检查。
  4. 编码转换:提供从GBK到UTF - 8的编码转换工具,确保代码在不同环境下的兼容性。
  5. 命令行工具支持:保留Keil的命令行工具支持,便于开发者进行批量处理和自动化构建。

安装使用步骤

1. 环境准备

确保安装以下工具和环境: - CMake - GNU Arm Embedded Toolchain - MSYS2(仅限Windows用户) - stlink(用于烧录和调试)

2. 修改CMakeLists.txt

Windows

修改CMakeLists.txt中的tools变量,指向GNU Arm Embedded Toolchain的安装路径: cmake set(tools "C:/Program Files (x86)/GNU Arm Embedded Toolchain/9 2020-q2-update") 使用以下命令生成Makefile: powershell cmake . -G "MSYS Makefiles"

Linux

直接使用以下命令生成Makefile: bash cmake .

3. 配置Visual Studio Code

修改c_cpp_properties.json,配置C/C++扩展以确保IntelliSense正常工作: jsonc { "configurations": [ { "name": "STM32F10X", "includePath": [ "${workspaceFolder}/**", "C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\9 2020-q2-update\\arm-none-eabi\\include\\**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE", "STM32F10X_HD", "USE_STDPERIPH_DRIVER" ], "compilerPath": "C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\9 2020-q2-update\\bin\\arm-none-eabi-gcc.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "${default}", "compileCommands": "${workspaceFolder}/build/compile_commands.json", "configurationProvider": "ms-vscode.cmake-tools" } ], "version": 4 }

4. 编码转换

如果源文件使用GBK编码,建议转换为UTF - 8: bash find ./ -name "*.c" -o -name "*.cpp" -o -name "*.h" -type f | xargs enca -L chinese -x utf-8

5. 构建和烧录

使用生成的Makefile进行构建,并使用stlink工具进行烧录和调试。 bash make st-flash write build/your_project.bin 0x8000000 通过以上步骤,您可以顺利地将Keil项目转换为使用CMake进行构建和管理的STM32项目。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】