本文档总结了此 STM32F103C8T6 项目的所有配置和文档。
- ✅
CMakeLists.txt- 主构建配置(已优化,支持无 preset 构建) - ✅
CMakePresets.json- Debug/Release 预设配置 - ✅
stm32f103x8_flash.ld- 链接脚本(64KB Flash, 20KB RAM) - ✅
.gitignore- Git 忽略规则(构建产物、IDE 文件等) - ✅
.editorconfig- 统一的代码风格配置
- ✅
Src/main.c- 应用入口 - ✅
Src/startup_stm32f103xx.S- 启动代码和中断向量表 - ✅
Src/syscall.c- 系统调用(printf 支持) - ✅
Src/sysmem.c- 内存管理(malloc/free)
- ✅
cmake/gnu-tools-for-stm32.cmake- ARM 工具链配置 - ✅
cmake/vscode_generated.cmake- 自动生成配置
- ✅
.vscode/settings.json- 编辑器设置 - ✅
.vscode/c_cpp_properties.json- C/C++ IntelliSense 配置 - ✅
.vscode/launch.json- 新增 调试配置(OpenOCD + ST-Link) - ✅
.vscode/tasks.json- 新增 构建和烧录任务
- ✅
.clangd- Clangd 语言服务器配置
-
✅
README.md- 完整 项目说明,包含:- macOS M1/M2/M3 开发环境搭建
- Windows 开发环境搭建
- 构建命令
- 烧录方法
- 硬件调试配置
- 完整的项目结构说明
-
✅
CLAUDE.md- 架构和构建系统详解- CMake 构建流程
- 内存布局
- 启动流程
- 开发工作流
-
✅
CONTRIBUTING.md- 协同开发指南- 环境搭建
- 分支策略
- Angular Commit Style 提交规范
- C 代码风格规范
- 内存使用最佳实践
- 合并请求流程
-
✅
EXAMPLES.md- 新增 代码示例- GPIO 输出(LED 闪烁)
- GPIO 输入(按钮检测)
- SysTick 延时
- UART 串口通信
- 定时器中断
-
✅
TROUBLESHOOTING.md- 新增 故障排除指南- 构建问题
- 烧录问题
- 调试问题
- 内存问题
- IDE 特定问题
-
✅
.clion-setup.md- CLion 配置说明- Toolchain 配置
- CMake Presets 使用
- 调试配置
- 常见问题
-
✅
LICENSE- 新增 STMicroelectronics 许可证
- ✅ 支持 CMake Presets(Debug/Release)
- ✅ 支持手动 CMake 配置(适用于 CLion)
- ✅ 自动生成 .elf, .hex, .bin 文件
- ✅ 自动生成 .map 内存映射文件
- ✅ 构建时显示内存使用情况
- ✅ 支持 C11 和 C++20 标准
- ✅ macOS M1/M2/M3 完整支持
- ✅ Windows 完整支持
- ✅ Linux 支持(通过相同的工具链)
-
✅ Visual Studio Code(推荐)
- STM32 扩展支持
- 完整的调试配置
- 构建任务快捷键
- 代码补全和跳转
-
✅ CLion
- CMake 集成
- 工具链配置说明
- 调试支持
- ✅ OpenOCD 支持(macOS)
- ✅ ST-Link GDB Server 支持(Windows)
- ✅ VS Code 调试配置
- ✅ GDB 命令行调试
- ✅ 串口调试支持
- ✅ EditorConfig 统一代码风格
- ✅ 编译警告已启用(-Wall -Wextra -Wpedantic)
- ✅ Git 提交规范(Angular Style)
- ✅ 代码审查流程
- ✅ 从零开始的环境搭建指南
- ✅ 详细的命令行示例
- ✅ 硬件连接说明
- ✅ 代码示例(从简单到复杂)
- ✅ 快速参考命令
- ✅ 故障排除手册
- ✅ 内存优化建议
- ✅ 调试技巧
- ✅ Git 工作流规范
- ✅ 提交信息格式
- ✅ 代码审查标准
- ✅ 分支管理策略
-
✅ CMakeLists.txt 变量未定义
- 添加了
PROJECT_ORIGINAL_NAME默认值 - 添加了
CMSIS_Dcore和CMSIS_Dendian默认值 - 支持不使用 Preset 的构建
- 添加了
-
✅ 缺少 VS Code 调试配置
- 创建了
launch.json - 支持 OpenOCD(macOS)
- 支持 ST-Link(Windows)
- 创建了
-
✅ 缺少构建任务
- 创建了
tasks.json - 快捷构建、清理、烧录任务
- 创建了
-
✅ 文档不完整
- 添加了详细的环境搭建步骤
- 添加了代码示例
- 添加了故障排除指南
# macOS/Linux
cmake --preset Debug && cmake --build --preset Debug
# Windows
cmake --preset Debug; cmake --build --preset DebugCtrl+Shift+B(Cmd+Shift+B) - 构建F5- 开始调试(需先启动 OpenOCD/ST-Link GDB Server)
# 配置
cmake --preset Debug
# 构建
cmake --build --preset Debug
# 清理
cmake --build --preset Debug --target clean
# 烧录
st-flash write build/Debug/test32.bin 0x8000000此项目配置适用于:
-
STM32 初学者
- 完整的环境搭建指南
- 代码示例从简单到复杂
- 详细的故障排除
-
团队开发
- 统一的开发环境
- 明确的协作规范
- Git 提交格式统一
-
跨平台开发
- macOS、Windows 都有详细说明
- 相同的构建命令
- 一致的开发体验
-
教学和培训
- 寄存器级别的示例代码
- 逐步讲解
- 可扩展的项目结构
项目已经具备了完整的基础设施,可以开始实际开发了。建议:
-
添加 HAL 库(可选)
- 如果需要更高级的功能,可以集成 STM32 HAL
- 当前项目使用寄存器操作,更底层但更灵活
-
实现具体功能
- 参考
EXAMPLES.md中的示例 - 逐步添加需要的外设驱动
- 参考
-
持续集成
- 可以添加 GitHub Actions 或其他 CI/CD
- 自动化构建和测试
-
单元测试
- 对于复杂的算法,可以添加单元测试
- 使用 Ceedling 或 Unity 测试框架
在开始开发前,请确认:
- ARM 工具链已安装并在 PATH 中
- CMake 3.20+ 已安装
- Ninja 已安装
- 能够成功构建项目
- ST-Link 或其他调试器已准备好
- 阅读了 README.md
- 了解了提交规范(CONTRIBUTING.md)
遇到问题时的资源:
-
项目文档
- README.md - 快速开始
- TROUBLESHOOTING.md - 故障排除
- EXAMPLES.md - 代码参考
-
官方资源
- STM32F103 参考手册
- STM32F103 数据手册
- ARM Cortex-M3 技术手册
-
社区支持
- 项目 Issues
- STM32 官方论坛
- Stack Overflow
项目状态: ✅ 生产就绪
最后更新: 2025-12-05