F4新建工程寄存器版和库函数版(详细讲解)

F4新建工程寄存器版和库函数版

一、寄存器版

(一)、准备工作
1、新建一个文件夹,名字随意,路径随意,自己能找到就行,建议不要放在C盘

F4新建工程寄存器版和库函数版(详细讲解)
2、在该文件夹中新建三个文件夹,名字随意,不要用中文,建议按照我的写
F4新建工程寄存器版和库函数版(详细讲解)
startup—启动代码
project—新建工程入口
user—官方的.c .h文件(变量定义的,官方库)、工程师自己写的代码
3、在user文件夹中新建一个文件夹,用于存放工程师自己写的代码,名字随意不要用中文,习惯是命名API
F4新建工程寄存器版和库函数版(详细讲解)
(二)、向文件夹添加文件
1、添加启动代码
按照 STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 路径找到启动代码,我要新建的是stm32f411CEUx的工程,所以选择了startup_stm32f411xe.s,将该文件复制到我们建立的startup文件夹中
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
2、添加所需的.c和.h文件,将下面所选中的文件复制到user里
路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates
F4新建工程寄存器版和库函数版(详细讲解)
路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
F4新建工程寄存器版和库函数版(详细讲解)
路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Include
F4新建工程寄存器版和库函数版(详细讲解)
最终我们的user是这样的
F4新建工程寄存器版和库函数版(详细讲解)
(三)、打开keil新建工程
1、点击新建工程
F4新建工程寄存器版和库函数版(详细讲解)
2、将新建的工程命名并保存project中,名字随意,不要有中文,点击保存
F4新建工程寄存器版和库函数版(详细讲解)
3、之后会弹出这样一个界面,开始芯片选型
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
点击OK,会弹出以下界面
F4新建工程寄存器版和库函数版(详细讲解)
点击OK,或者直接×掉,会进入如下界面,这就是一个空的工程
F4新建工程寄存器版和库函数版(详细讲解)
4、向工程中添加文件
F4新建工程寄存器版和库函数版(详细讲解)
添加startup
F4新建工程寄存器版和库函数版(详细讲解)
添加user
F4新建工程寄存器版和库函数版(详细讲解)
添加API,API里面是自己写的代码,由于现在还没写,所以里面没有东西
F4新建工程寄存器版和库函数版(详细讲解)
添加完毕之后点击OK关闭,不要点右上角的X,否则等于没设置,设置完毕之后会是这样子
F4新建工程寄存器版和库函数版(详细讲解)
5、添加.h,按照我的当时建立的文件夹,只有两个文件夹里面有.h文件,一个是user文件夹,另一个是API(工程师后期写代码创建的.h文件),所以只需要将这两个文件夹添加进去就可以了,之后点击确定保存就可以了,这样在之后的编译过程中keil会自动链接.h文件
F4新建工程寄存器版和库函数版(详细讲解)
7、工程的相关配置
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
(四)、测试工程
1、新建main.c和main.h,保存到我们自己建立的API文件夹里
F4新建工程寄存器版和库函数版(详细讲解)
2、添加main.c
F4新建工程寄存器版和库函数版(详细讲解)
3、编译和纠错
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
编译之后会报一个错误:
F4新建工程寄存器版和库函数版(详细讲解)
该错误提示来自stm32f4xx_it.o,我们打开相应的.c文件就可以发现问题,找到下面的问题注释掉
F4新建工程寄存器版和库函数版(详细讲解)
之后再进行编译就没有错误了
F4新建工程寄存器版和库函数版(详细讲解)
我的这次没有报其他的错误,根据我之前新建工程的时候有时候会报下面的错误
F4新建工程寄存器版和库函数版(详细讲解)
这个错误是因为头文件没有宏定义(不过有的没有报错也会出现这个,就当是软件的bug吧,只要不报错就不用管), 解决方式如下操作,去掉相应注释即可,去掉哪一个可以根据自己的芯片型号选择,后面都有包含的芯片类型的
F4新建工程寄存器版和库函数版(详细讲解)

二、寄存器版

接下来是在此基础上进行添加库函数
1、选择STM32F4xx_StdPeriph_Driver文件夹直接复制到我们之前创建的文件夹里
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
2、选择这个.h文件复制到user文件夹
F4新建工程寄存器版和库函数版(详细讲解)
最终user文件夹应该是这样的,那个.TMP文件应该是自己生成的
F4新建工程寄存器版和库函数版(详细讲解)
3、由于我使用的板子device中没有fsmc的功能,所以直接删掉,不然编译的时候回报一堆关于fsmc错误,所以我会直接把fsmc.c和fsmc.h删除掉,如果不确定有没有这一项功能的可以先不操作这一步,编译之后如果报错再删除掉
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
4、添加.c和.h
F4新建工程寄存器版和库函数版(详细讲解)
F4新建工程寄存器版和库函数版(详细讲解)
5、让编辑器识别到库函数
方法一:
F4新建工程寄存器版和库函数版(详细讲解)
方法二:
STM32F4XX_MD,USE_STDPERIPH_DRIVER复制粘贴到这个位置
F4新建工程寄存器版和库函数版(详细讲解)
6、编译和纠错
编译之后可以看到报了30个错误,先不要慌,看一下报的是什么错,发现全部都和FMC有关,这个情况其实对应第3步,我们没有用到它,所以找到文件夹里面的fmc.c和fmc.h直接删除掉就可以了
F4新建工程寄存器版和库函数版(详细讲解)
之后再次进行编译运行,还是报了一个有关fmc的错误
F4新建工程寄存器版和库函数版(详细讲解)
说明我们没有删除干净,应该是keil里面没有移除掉,找到它右键选择remove移除
F4新建工程寄存器版和库函数版(详细讲解)
再次编辑我的就没有错误了