实验前准备:最新版本的固件库,开发板,Jlink,keil5
采用最新固件库版本“V1.8.0最新标准固件库”(可上官网下载)
这边介绍从零开始搭建的方法。
注意事项:
1、不要导入stm32f4xx_fsmc.c,原因是F42不支持FSMC,支持FMC,f407才支持FSMC,导入之后
会报30个错。
2、所有文件最好不要命名中文,即文件路径不要出现中文,否则可能莫名其妙报错。
3、如果在keil中发现自己的某个文件上有一个黄色的小钥匙,说明该文件是被设置了只读模式,需要
返回到文件夹中全选所有文件->右击鼠标->属性 然后把只读的那一项取消。
新建XXX作为工程的根目录文件夹,下设以下几个子文件夹。这些文件夹的名字是可以按照自己
的喜好改变的,原则上怎么方便后面写程序怎么来,所以我们会发现不同的人写的工程文件,每个文
件夹命名和内容都是不一样的。
CORE:用于存放STM32的CPU核心相关的文件和启动文件
FWLIB:存放STM32的外设库,大大简化了编程。
Project:MDK工程相关的目录,KEIL工程相关的文件
OBJ:放一些将来自己写的程序文件的.o .d .crf等类型的文件
Middlewares:下设一个System文件夹,System文件下设Inc和Src文件夹,Inc放头文件,Src放.c文
件,将来植入FREETOS也放在这
USER:存放如BSP(板级支持包)、APP(一些重要的子.c文件)、将来自己写的程序文件。下设
两个子文件夹inc和src,前者存放.h,后者存放.c文件。
1、打开 Keil,点击 Keil 的菜单:
Project –>New Uvision Project ,然后将目录定位到刚才建立的文件
夹XXX之下的Project子目录,工程的名字可以根据自己的要求设置。Project文件夹就用来存放工
程的文件。
3、后面弹出的对话框直接点OK
1、打开官方固件库包,定位到我们之前准备好的固件库包的目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver 下面,将目录下
面的 src,inc 文件夹 copy 到我们刚才建的FWLIB文件夹下。
2、打开官方固件库包,定位到目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Template
s\arm 下面,将文件 startup_stm32f427_437xx.s 、startup_stm32f427x.s(启动文件)复制到 CORE
目录下面。
3、打开
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Includ , 将 里 面 的 四 个 头 文 件 :
core_cm4.h 、core_cmSimd.h 、core_cmFunc.h 、 core_cmInstr.h 复制到 CORE 目录下面。
4、复制工程模板需要的一些其他头文件和源文件到我们工程
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 将里面的
2 个头文件 stm32f4xx.h 和 system_stm32f4xx.h 复制到 Project目录之下。
5、然后进入目录:
\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates ,将 目 录 下
面 的 6个 文 件 main.c ,main.h, stm32f4xx_conf.h , stm32f4xx_it.c , stm32f4xx_it.h ,
system_stm32f4xx.c 复制到 Project目录下面
6、导入文件到keil工程
点击
中的
将之前复制的文件导入到我们的工程,
注意不要导入stm32f4xx_fsmc.c
原因是F42不支持FSMC,支持FMC,f407支持FSMC,导入之后会报30个错。
7、设置头文件存放路径。
这一步骤非常重要。很多时候系统报错说找不到文件什么的可能就是这个没有设置好
STM32F427X,USE_STDPERIPH_DRIVER,__FPU_USED,__FPU_PRESENT,ARM_MATH_CM4,__CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING
复制到第一行Define
然后在Include Path 导入我们的文件路径
8、编译
发现没有错误,有错误可能是多/少导入了文件
9、LED测试
打开main.c,
将这一段里的A改为G,并且随便改GPIO_Pin_x(1<=x<=8)即点亮我的板子上的x灯(每个人的开发
板不同所以要看情况)
10、设置下载方式
点击魔术棒的Dubug,再点击Setting
选择Port为SW模式,因为我的开发板支持SW模式下载,视情况而定
11、下载到板上,发现对应的灯亮,OK。