STM32新建工程
1、新建工程
- Keil5中,新建Project,选择STM32Project文件夹,在此文件夹下新建一个文件夹“STM32工程模板”,然后给工程文件起名字“Project”
- 选择器件型号
2、添加启动文件
- 新建start文件夹
- 复制启动文件:固件库文件夹…/CM3/DeviceSupport/ST/STM32F10x/startup/arm/中的文件复制到start文件夹下
- 赋值stm32外设寄存器描述文件:…/CM3/DeviceSupport/ST/STM32F10x/下的stm32f10x.h(外设寄存器描述文件)、system_stm32f10x.c(配置时钟)、system_stm32f10x.c
- 添加内核启动文件(因为stm32是内核和内核外围设备组成)…/CM3/CoreSupport文件夹下core_cm3.c、core_cm3.h(内核寄存器描述文件和相关配置)
3、添加文件到工程中(stm32基本文件)
- 更改工程文件名为start,右键-添加存在的文件,添加start文件中的…md.vls(启动文件)、.c、.h文件
4、工程选项中添加头文件路径
5、新建main.c文件
- 文件夹内新建User文件夹
- 工程文件,右键-添加组-改名User,User上右键-添加新文件-main.c-选择Location,要选择文件夹中新建的User文件夹,否则main.c会默认在文件夹外
6、代码编写
- 引入stm32f10x.h头文件
- 写main函数
- 添加一个while死循环
7、添加库函数
- 工程文件夹下新建“Library”文件夹
- 复制固件库文件:…/Libraries/…_Drivers/src下的文件复制到新建的“Library”文件夹下;
- 复制inc文件(库函数头文件):…/Libraries/…_Drivers/inc下的文件复制到新建的“Library”文件夹下;
- Keil软件,右键添加组,改名为“Library”,右键添加已存在的文件,添加库函数文件
- 添加必要文件到User文件夹:固件库文件夹,添加
stm32f10x.conf.h
(用来配置库函数头文件的包含关系的以及参数检查的函数定义)和stm32f10x_it.h
、stm32f10x_it.c
(用来存放中断函数) - Keil软件中将
stm32f10x.conf.h
、stm32f10x_it.h
、stm32f10x_it.c
三个文件添加到User组中 - 添加宏定义“USE_STDPERIPH_DRIVER”,添加标准外设库,这样才能包含标准外设库,也就是库函数
调整工程目录顺序
8、库函数实现点灯
#include "stm32f10x.h"
// Device header
int main(void){RCC_APB2PeriphclockCmd(RCC APB2Periph GPIOC,ENABLE);GPIO_InitTypeDef GPIO_Initstructure;GPIO_Initstructure.GPIO_Mode = GPIO_Mode_out_PP;GPIO_Initstructure.GPlo_Pin = GPIO_Pin_13;GPIO_Initstructure.GPlO_speed = GPIO_speed_50MHz;GPIO_Init(GPIOC,&GPIo Initstructure);GPIO setBits(GPIOC,GPIO_Pin_13);while (1){}
}