创建 STM32 工程
概述
在通过 Keil5 建立工程时,除了需要创建Keil工程,使其建立一些Keil的基本文件外,还需要手动导入STM32的一些引导文件。
在创建工程前,确保 Keil5 已经安装了需要使用的芯片的器件支持包。
固件包
固件包是 STM 公司提供的 STM32 芯片工作所需的文件和例程等相关开发资料。
例如 STM32F103C8T6 的固件包中,文件结构如下:
文件名 | 作用 |
---|---|
_htmresc | 一些Logo图片 |
Libraries | STM32的库函数文件夹 |
Project | 官方提供的工程示例模板 |
Utilities | STM32官方评估板相关例程 |
Release_Notes.html | 库函数的发布文档 |
stm32f10x_stdperiph_lib_um.chm | 库函数的使用手册 |
创建项目 [标准库]
通过 Keil5 创建工程
启动 Keil5 通过点击:Project -> New μVision Project 创建工程。
选择项目存放地址,并且为项目取名后,选择需要使用的单片机芯片。
在选择好单品机芯片后弹出的 Manage Run-Time Environment 窗口本篇无需使用,因此不做介绍。
Keil5 工程创建完毕后,打开工程目录,Keil5 自动生成了若干文件。
导入 STM32 启动文件
由于 SMT32 启动文件众多,因此需要在工程目录下新建以下文件夹用于存储对应的 STM32 启动/库文件,从而使工程结构清晰,便于编写和查找代码。
START 存放 STM32 的启动文件
LIBRARY STM32 标准库的外设库文件
src 用户编写的源码
inc 用于编写的头文件
Hardware 用于存储硬件的驱动文件
System 用于存储 STM32 系统功能文件
将所需所需使用的MCU的固件库文件夹内的相关文件复制到上述文件夹内,即可完成 STM32 启动文件的导入。
STM32 F10x 系列芯片
START
内核启动文件
文件位置:STM32F10x_StdPeriph_Lib -> Libraries -> CMSIS -> CM3 -> CoreSupport
core_cm3.c
core_cm3.h
时钟配置文件
文件位置:STM32F10x_StdPeriph_Lib -> Libraries -> CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F10x
system_stm32f10x.c
system_stm32f10x.h
外设寄存器描述文件
文件位置:STM32F10x_StdPeriph_Lib -> Libraries -> CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F10x
stm32f10x.h
STM32启动文件(1)
文件位置:STM32F10x_StdPeriph_Lib -> Libraries -> CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F10x -> startup -> arm
startup_stm32f10x_md.s
LIBRARY
将 STM32 固件库提供的标准外设库.c和.h文件复制到该目录下
文件位置:
- .c文件:STM32F10x_StdPeriph_Lib -> Libraries -> STM32F10x_StdPeriph_Driver -> src
- .h文件:STM32F10x_StdPeriph_Lib -> Libraries -> STM32F10x_StdPeriph_Driver -> inc
src
配置库函数头文件包含关系
stm32f10x_conf.h
中断函数配置文件
stm32f10x_it.c
stm32f10x_it.h
文件位置:STM32F10x_StdPeriph_Lib -> Project -> STM32F10x_StdPeriph_Template
Keil5 导入文件&文件夹
在启动文件复制到 Keil5 工程目录下后,需要手动将其导入至 Keil5 软件内才可使用。
- Keil5 软件左侧 Project 栏内将 Source Group 1 更名为 START 后右键选择:Add Existing Files to Group 'START' 在文件浏览器中,将工程目录下同名文件夹内的文件导入其中。
- Keil5 软件左侧 Project 栏内的 Target 1 点击 Add Group 添加文件夹。
- 重复上述 1 和 2 的操作,分别创建 LIBRARY、src、inc文件夹,并且将其项目目录下同名文件夹内文件导入至 keil5 中,并且在 src 文件夹中通过右键:Add New Item to Group 'src' 向该文件夹内添加:main.c 文件作为程序的主入口。
添加文件目录至 Keil5 PATH
在创建完毕 Keil5 工程并且导入 STM32 启动文件后,对于 Keil5 来说并不知道用户导入的文件在什么位置,因此需要手动将创建的目录地址导入至 Keil5 中。
在弹出的资源管理器中,将前面步骤中手动创建的文件夹的地址添加到 PATH 中即可。
添加宏定义
SMT32 标准库需要使用一条宏定义来开启 STM32 标准库头文件包含,将下列内容粘贴至指定位置即可。
开启STM32 标准库所用的宏定义位于 stm32f10x.h 文件中,不同MCU可能存在不同,这里仅以 stm32f103c8t6 MUC 作为展示
宏定义: USE_STDPERIPH_DRIVER
关于STM32工程中启动文件的选择
STM32固件包内的启动文件众多,需要根据芯片的类型进行选择分为以下几种类型。
LD_VL (Low Density Value Line)
小容量产品超值系列
型号:STM32F100
Flash容量:16~32K
MD_VL (Medium Density Value Line)
中容量产品超值系列
型号:STM32F100
Flash容量:64~128K
HD_VL (High Density Value Line)
大容量产品超值系列
型号:STM32F100
Flash容量:256~512K
LD (Low Density)
小容量产品
型号:STM32F101/102/103
Flash容量:16~32K
MD (Medium Density)
中容量产品
型号:STM32F101/102/103
lash容量:64~128K
HD (High Density)
大容量产品
型号:STM32F101/102/103
Flash容量:256~512K
XL (EXtra Large)
加大容量产品
型号:STM32F101/102/103
Flash容量:大于512K
CL (Connectivity Large)
互联型产品
型号:STM32F105/107