自从ST公司推出了STM32CubeMX软件,使得开发者开发成本和时间大大缩小,通过这款软件,用户可以选择芯片和配置时钟、外设等等,可以直接生成工程代码,虽然功能逻辑还是要自己补充,但是已经省去原来工程创建和繁琐的外设配置。
但是对于初学者要懂得手动创建一个完整的工程,有利于加深对工程目录结构和各类驱动文件的理解,本文将带领读者手动创建基于HAL库的STM32工程项目。
1.新建本地工程文件夹
电脑本地新建“Template_HAL”文件夹,在该文件夹下新建5个文件夹,如下图所示
2.添加HAL库
将HAL库添加到工程文件夹中,HAL库下载和说明我在另外一篇文章中有详细介绍。
名称 | 说明 |
Doc | 项目说明相关文档 |
Drivers | HAL库的CMSIS文件夹 HAL库的STM32F1xx_HAL_Driver文件夹 |
Inc | HAL库的“STM32Cube_FW_F1_V1.8.0\Projects\STM32F103RB-Nucleo\Templates\Inc”目录下文件复制到本文件夹下: main.h,stm32f1xx_hal_conf.h,stm32f1xx_it.h |
MDK_ARM | 暂时为空 |
Src | HAL库的“STM32Cube_FW_F1_V1.8.0\Projects\STM32F103RB-Nucleo\Templates\Src”目录下文件复制到本文件夹下: main.c,stm32f1xx_hal_msp.c,stm32f1xx_it.c,system_stm32f1xx.c |
3.新建工程
-
打开Keil-MDK,新建工程,保存在“Template_HAL\MDK-ARM”目录下,工程名称可以根据自己的项目命名。
-
根据项目使用的CPU具体型号来选择选择芯片,小编这里使用STM32F103C8T6。
-
添加组文件夹
- 组文件夹添加文件
根据芯片的容量选择启动文件
选择src下的代码源文件
选择项目用到的外设代码源文件
选择系统配置文件
-
引入头文件路径
- 添加宏
USE_HAL_DRIVER 宏:为了让 stm32f1xx.h 包含 stm32f1xx_hal_conf.h 这个头文件
STM32F103xB 宏:为了告诉 STM32HAL 库,我们使用的芯片类型是 STM32 型号是小容量的,使 STM32HAL 库根据我们选定的芯片型号来配置。
-
点击编译出会错,此时删除main.c中“#include "stm32f1xx_nucleo.h"”,我们不需要引入ST官方套件的相关代码。再次点击编译提示成功。