单片机
返回首页

Linux 下 VScode + gcc + cmake 实现 stm32 标准库开发 (f103)

2025-10-29 来源:bilibili

1. 配置环境

1.1 安装编译工具链 gcc-arm-none-eabi

在终端输入  


git clone https://github.com/MagiL0/stm32_gcc_template.git

或直接前往 网页( https://github.com/MagiL0/stm32_gcc_template ) 下载源码并解压。


打开 网页 (https://developer.arm.com/downloads/-/gnu-rm) 根据自己的版本选择对应的 gcc-arm-none-eabi 工具链下载。


前往下载到的目录,打开终端


tar -zxvf *文件名*  sudo mv *文件夹名* /opt/gcc-arm-none-eabi  sudo vim ~/.bashrc

    在最后一行添加


export PATH=$PATH:/opt/gcc-arm-none-eabi/bin

    保存并退出,之后重启终端,输入


arm_none_eabi-gcc -v

显示版本号即安装成功 如果出错,请直接搜索 “linux 安装 gcc-arm-none-eabi”


1.2 安装 cmake

sudo apt install cmake -y

1.3 安装 openocd

参考 https://docs.espressif.com/projects/esp-idf/zh_CN/v3.3.4/api-guides/jtag-debugging/setup-openocd-linux.html


cut-off

2. 使用工程

2.1 编译

在终端输入 


git clone https://github.com/MagiL0/stm32_gcc_template.git

在该文件夹打开终端,输入


cd build cmake .. make

终端输出无 warning 及 error 时说明没有问题,生成的 .hex .elf 等文件在你的当前文件夹 (build) 中。


2.2 烧录

连接 jlink 或 stlink。


    在终端输入 


openocd -f jlink.cfg -f stm32f1x.cfg

# 如果使用 stlink,则输入:

openocd -f stlink.cfg -f stm32f1x.cfg

不要退出,打开新的命令行终端,输入 


telnet localhost 4444

输入 program led_test.elf 开始烧录


烧录成功后,输入 restart 程序开始执行


更多详细的步骤如调试等,请查询 openocd 教程


cut-off

3. 修改工程

3.1 修改工程名称

打开 CMakeLists.txt ,修改第 7 行中的 led_test 为你自己的工程名


删除 build 文件夹中的所有内容


重新编译 (参考 1.1)


3.2 添加文件


3.2.1 不修改文件夹目录


无需修改,直接把所需 .c, .h 文件扔进子目录 (如 USER/) 即可


如果是细分了 src inc 的文件夹,.s, .c 扔进 src,.h 扔进 inc


3.2.2 修改文件夹目录


添加源文件时,编辑 CMakeLists.txt。在 65 行:file(GLOB_RECURSE SOURCES 后添加 .c 文件所在的目录。


添加头文件时,编辑 CMakeLists.txt。在第 55 行 include_directories 的括号后添加 .h 文件目录即可。


添加汇编语言文件时,编辑 CMakeLists.txt。在第 82 行 list 的括号中末尾处添加 .s 文件路径即可


以上修改时可以不加引号,但若文件目录名称中含有空格,则必须添加引号。3.2 修改文件夹名称


如:在 USER 中新建 src 目录存放 .c 文件,则需修改为:


file(GLOB_RECURSE SOURCES  "CORE/*.c"  "SYSTEM/delay/*.c"  "SYSTEM/usart/*.c"  "SYSTEM/sys/*.c"  "USER/*.c"  "STM32F10x_FWLib/src/*.c"  "USER/src/*.c"  )

当添加文件夹后在新增的文件夹里添加工程文件时,需作以下修改:


当修改文件夹名称时,将 CMakeLists.txt 中的所有被修改的文件夹名称全部修改为被修改后的。


3.3 修改单片机型号


使用 stm32f103 中的 c, d, e, f, g 系列时无需修改。


使用 stm32f103 中的 8, b 系列时需打开 CMakeLists.txt,修改第 22 行的 STM32F10X_HD 为 STM32F10X_MD


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 1瓦四级调频发射机

  • 500W MOS场效应管电源逆变器,12V转110V/220V

  • 红外开关

  • LM317过压保护

  • 0-30V/20A 大功率稳压电源(采用LM338)

    相关电子头条文章