一.开发环境搭建
1.下载keil5
本软件网上教程很多就不多介绍了,注意要下载f4的支持包,支持包下载地址:Arm Keil | Keil STM32F4xx_DFP;
2.安装stm32标准外设库
下载地址:STSW-STM32065 - STM32F4 DSP和标准外设库 - 意法半导体STMicroelectronics
二.STM32F411标准库必要文件准备
1.创建文件夹目录
根据个人习惯创建文件夹目录,例如:
START 存放启动必要文件
LIBR 存放官方标准库
USER 存放main函数和其他通用的.c文件
CODE 存放自己模块化的代码
2.将官方的固件库包里的源码文件复制到我们的LIBR文件夹下面
打开官方固件库包,定位到我们之前准备好的固件库包的目录
: \STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\STM32F4xx_StdPeriph_Driver下面
将目录下面的 src,inc 文件夹 copy 到我们刚才建立的LIBR文件夹下面。src 存放的是.c 文件,inc 存放的是对应的.h 文件。
3.将固件库包里面相关的启动文件复制到我们的工程目录 START 之下。
3.1.打开固件库包定位到
:\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm
找到startup_stm32f411xe.s文件copy 到我们刚才建立的START文件夹下面。
3.2.打开固件库包定位到
:\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Include
将 里 面 的 四 个 头 文 件 :core_cm4.h 、core_cmsimd.h 、core_cmFunc.h 以及 core_cmInstr.h
同样复制到START目录下面。
3.3打开固件库包定位到
:\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
将里面两个头文件: stm32f4xx.h 和 system_stm32f4xx.h 复制到START目录下面。
这一步完成后START文件夹里面应该有这些文件
4.将固件库包里面相关的其他重要文件复制到我们的工程目录 USER 之下。
打开固件库包定位到
:\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\STM32F4xx_StdPeriph_Templates
找到 system_stm32f4xx.c和stm32f4xx_conf.h 复制到我们的工程目录 USER 之下。
到这一步,所有必须的文件都已经准备完毕,但是有一些文件是不能存在的接下来跟着报错删文件
三.建立工程模板
1.打开keil5在我们刚刚建立的文件夹中新建工程选择下面这个型号的芯片
2.将文件添加到工程
3.在USER文件夹里建一个main.c文件
4.设置头文件路径和宏定义
宏定义填:USE_STDPERIPH_DRIVER,STM32F411xE
这一步很重要!!!!!!!!!
5.编译一下
这个时候应该会报60个错误这个是正常的;现在开始删文件
报错的文件在LIBR文件夹下src中的stm32f4xx_fsmc.c文件,找到它删除并在keil文件目录里移除
再编译一下
30个错误
同样找到报错文件删!
继续编译0错误完成!
ps:如果出现错误Error: Flash Download failed - "Cortex-M4"进行以下操作
找到文件stm32f4xx.h
左键属性去掉只读并打开这个文件找到第80行代码去掉注释符号;打开上电复位问题解决
四.点灯顺便测试一下OLED屏幕
成功!!!!!
ps:不知道为什么宏定义没起作用,记得在每一个自己写的.c文件中加一句#include "stm32f4xx_conf.h"不然keil可能会出问题;现象为编译不报错但是写代码的时候疯狂报警告
如图: