1. 工程文件夹结构:(江科大网课,背诵)
STM32F103_Project
├── Start # 启动文件
├── Library # 库文件,通常指官方提供的固件库
│ ├── CMSIS # 内核支持文件(core_cm3.h、system_stm32f10x.c)
│ └── SPL # 标准外设库(stm32f10x_gpio.c、stm32f10x_rcc.c等),全称是Standard Peripheral Library
├── User # 用户代码
│ ├── main.c # 主程序
│ ├── stm32f10x_it.c # 中断服务程序
│ └── stm32f10x_conf.h # 外设配置文件
└── Output # 编译输出文件(自动生成)
2. 库文件的典型目录结构:(背诵,跟智能家居项目一致)
Drivers/
├── CMSIS/ # CMSIS核心文件(ARM Cortex-M标准接口),读的时候念英文字母就行
│ ├── Device/ST/STM32F4xx/ # 芯片特定文件
│ │ ├── Include/ # 芯片头文件(如stm32f4xx.h)
│ │ ├── Source/ # 系统初始化文件(system_stm32f4xx.c)
│ │ └── Startup/ # 启动文件(startup_stm32f407xx.s)
│ └── Core/ # Cortex-M内核通用文件
│ ├── Include/ # 内核头文件(core_cm4.h)
│ └── Source/ # 内核功能实现(如cmsis_gcc.h)
│
└── STM32F4xx_HAL_Driver/ # HAL库文件
├── Inc/ # HAL库头文件(.h)
│ ├── stm32f4xx_hal.h # HAL核心头文件
│ ├── stm32f4xx_hal_gpio.h
│ └── ... # 其他外设头文件
└── Src/ # HAL库源文件(.c)
├── stm32f4xx_hal.c # HAL核心实现
├── stm32f4xx_hal_gpio.c
└── ... # 其他外设实现
3. 新建工程的步骤:(以 Keil 5、STM32F103 为例)
步骤1:新建工程
(1) 打开 Keil → Project → New uVision Project → 新建工程文件夹并重命名(一般是以每节课的名称来命名) → 新建文件夹起名为 Project 保存。
(2) 选择芯片型号:STMicroelectronics → STM32F103C8。
步骤2:添加文件夹
(1) 新建 3 个文件夹,分别叫 Start、Library、User。
(2) 添加启动文件,将江科大提供的启动文件(如 startup_stm32f10x_md.s)复制到 Start 文件夹
(3) 添加标准外设库,将江科大提供的标准外设库文件(如stm32f10x_gpio.c、stm32f10xx_rcc.c),即将标准外设库的 src 和 inc 目录复制到 Library 文件夹。
① src 文件夹,全称是 source(源代码),用于存放项目的源文件,即实现具体功能的代码文件。常见的文件类型:
- .c(C语言源文件)
- .cpp(C++ 源文件)
② inc 文件夹,全称是 include(包含),用于存放项目的头文件,即声明函数、类、宏和全局变量的文件。
- .h(C/C++ 头文件)
- .hpp(C++ 头文件)
(4) 添加用户代码,将江科大提供的代码(如 main.c)复制到 User 文件夹。
步骤3:打开 Manage Project Items:
(1) 选择 Manage Project items(三个盒子的图标),弹出工程管理对话框 → 创建新组,输入组名(如Start、Library、User)→ 文件类型选所有文件,向组中添加文件,点击 ADD Files。
步骤4:配置头文件路径:
(1) 点击 Options for Target(魔术棒图标)→ 进入 C/C++ 选项卡,点击 Include Paths → 添加头文件路径。
(2) 设置预处理器宏,在 C/C++ 选项卡的 Preprocessor Symbols 中,添加以下宏。
USE_STDPERIPH_DRIVER
步骤5:Keil 中的 Debug 配置:
(1) 进入 Debug 选项卡,配置 Use,选择调试器(如 ST-Link Debugger)→ 进入 Settings,勾上 Reset and Run。