1.新建文件夹如图:

STM32F407 新建基于固件库的项目模板-LMLPHP

2.新建项目在USER文件夹中,选cpu如图:

STM32F407 新建基于固件库的项目模板-LMLPHP

若再弹出窗口, 直接点cancel

3.删了这俩文件夹:

STM32F407 新建基于固件库的项目模板-LMLPHP

4.复制文件到fwlib:

STM32F407 新建基于固件库的项目模板-LMLPHP

src 存放的是固件库的.c 文件, inc 存放的是对应的.h 文件,每个外设对应一个.c 文件和一个.h 头文件

5.复制文件到core

STM32F407 新建基于固件库的项目模板-LMLPHP

很玄学的变了名字。。

STM32F407 新建基于固件库的项目模板-LMLPHP

6.复制文件到user

STM32F407 新建基于固件库的项目模板-LMLPHP

STM32F407 新建基于固件库的项目模板-LMLPHP

7.把源文件添加到工程

在keil中,左边一栏,对着target右键,manage project items

STM32F407 新建基于固件库的项目模板-LMLPHP

  • FWLIB

    选src里所有文件,删一个:

    STM32F407 新建基于固件库的项目模板-LMLPHP

  • core

    STM32F407 新建基于固件库的项目模板-LMLPHP

  • user

    三个.c

8.设置头文件路径:

STM32F407 新建基于固件库的项目模板-LMLPHP

STM32F407 新建基于固件库的项目模板-LMLPHP

  1. 添加全局宏定义标识符

    STM32F407 新建基于固件库的项目模板-LMLPHP

在 Define 输入框连输入:

STM32F40_41xxx,USE_STDPERIPH_DRIVER。注意这里是两个标识符 STM32F40_41xxx

和 USE_STDPERIPH_DRIVER, 他们之间是用逗号隔开的,

10.选择编译中间文件编译后存放目录

STM32F407 新建基于固件库的项目模板-LMLPHP

11.main.c 修改

12.stm32f4xx_it.c 文件内容修改

清空

或者 删掉其中的 32 行对main.h 头文件的引入以及 144 行 SysTick_Handler 函数内容

13.系统时钟的配置

修改 System_stm32f4xx.c 文件,把 PLL 第一级分频系数 M 修改为 8,

STM32F407 新建基于固件库的项目模板-LMLPHP

在 stm32f4xx.h 里面修改外部时钟 HSE_VALUE 值为 8MHz

STM32F407 新建基于固件库的项目模板-LMLPHP

14.拷贝system文件夹

将任意例程的system文件夹复制到template文件夹下

像之前那样,3个源文件加入工程,3个头文件加入path

15.结束了,可以用下面的代码测试,没有error则完成:

#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"
int main(void)
{
u32 t=0;
uart_init(115200);
delay_init(84);
while(1){
printf("t:%d\r\n",t);
delay_ms(500);
t++;
}
}
05-25 23:14