Skip to content
SlumberMinPublic

About

STM32F103C8T6 开箱即用开发模板 — Makefile 增量编译 + HAL 精简 + AI Agent 友好

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

🔧 stm32-dev

STM32F103C8T6 开箱即用开发模板

release  platform  built with  license

MCU  flash  ram  verified


Makefile 增量编译 · HAL 精简编译 · CubeMX .ioc 集成 · AI Agent 友好

English | 中文


中文

特性

  • ✅ 零配置 — 自动检测 GCC、HAL、CubeMX、Programmer 路径
  • ✅ 增量编译 — 只编译修改过的文件(已验证:改 main.c 后不重编 HAL)
  • ✅ 自动扫描 — src/ 下新建 .c 文件自动参与编译
  • ✅ HAL 精简 — 只编译用到的 9 个 HAL 模块,减少编译时间
  • ✅ 一键烧录 — make flash 编译 + 烧录(ST-Link SWD)
  • ✅ CubeMX 集成 — .ioc 文件配置引脚/时钟/外设,make config 生成代码
  • ✅ AI 友好 — AGENTS.md 让 AI Agent 直接参与开发

快速开始

# 1. 编译(自动检测工具链 + HAL 库路径)
make

# 2. 烧录(连接 ST-Link)
make flash

# 3. 启用新外设
#    编辑 stm32f1xx_hal_conf.h 取消注释 HAL_xxx_MODULE_ENABLED
#    编辑 Makefile HAL_MODULES 列表添加 stm32f1xx_hal_xxx.c
make clean && make

Makefile 命令

命令 说明
make 增量编译
make flash 编译 + 烧录(ST-Link SWD)
make config CubeMX 代码生成
make clean 清理
make size 固件大小
make symbols 符号表(地址→函数名)
make disasm 反汇编
make check-env 检查工具链
make help 所有命令

目录结构

stm32-dev/
├── Makefile              # 构建系统
├── AGENTS.md             # AI Agent 操作手册
├── README.md
├── blink_led.ioc         # CubeMX 工程文件
├── stm32f103c8t6.ld      # 链接脚本
├── src/
│   ├── main.c            # 用户代码(LED 闪烁 + UART printf)
│   ├── main.h
│   ├── stm32f1xx_hal_conf.h  # HAL 模块开关 ⭐
│   ├── stm32f1xx_it.c    # 中断处理
│   ├── system_stm32f1xx.c
│   ├── syscalls.c        # printf 重定向
│   └── startup_stm32f103xb.s  # 启动文件
└── docs/
    ├── setup.md          # 工具链安装
    ├── cubemx_rules.md   # CubeMX CLI 规则 ⭐
    ├── hal_guide.md      # HAL 库使用指南
    ├── debug.md          # 调试方法
    └── pitfalls.md       # 踩坑记录

启用新外设

// 1. stm32f1xx_hal_conf.h — 取消注释
#define HAL_SPI_MODULE_ENABLED
#define HAL_ADC_MODULE_ENABLED

// 2. Makefile HAL_MODULES — 添加源文件
#    stm32f1xx_hal_spi.c \
#    stm32f1xx_hal_adc.c \

引脚表

引脚 功能 说明
PA5 GPIO_Output LED(高电平亮)
PA9 USART1_TX 串口发送
PA10 USART1_RX 串口接收

工具链

Makefile 自动扫描常见路径:

export GCC_ARMCOMPILER=/path/to/gcc-arm-none-eabi
export HAL_DRIVER=/path/to/STM32F1xx_HAL_Driver
export CUBEMX_PATH=/path/to/STM32CubeMX.exe
export STM32_PROG=/path/to/STM32_Programmer_CLI.exe

English

Features

  • ✅ Zero Config — Auto-detect GCC, HAL, CubeMX, Programmer paths
  • ✅ Incremental Build — Only recompile changed files (verified: main.c change doesn't rebuild HAL)
  • ✅ Auto Scan — New .c files in src/ automatically compiled
  • ✅ HAL Lean — Only compile 9 used HAL modules, faster builds
  • ✅ One-Click Flash — make flash build + flash (ST-Link SWD)
  • ✅ CubeMX Integration — .ioc file for pin/clock/peripheral config
  • ✅ AI Agent Friendly — AGENTS.md lets AI agents participate directly

Quick Start

make            # Build (auto-detect toolchain + HAL)
make flash      # Flash to STM32 via ST-Link
make config     # Generate code from blink_led.ioc via CubeMX

Enable New Peripherals

// 1. stm32f1xx_hal_conf.h — uncomment
#define HAL_SPI_MODULE_ENABLED

// 2. Makefile HAL_MODULES — add source
#    stm32f1xx_hal_spi.c \

License  Platform  Architecture

⬆ Back to top

About

STM32F103C8T6 开箱即用开发模板 — Makefile 增量编译 + HAL 精简 + AI Agent 友好

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages