返回列表 发新帖我要提问本帖赏金: 10.00元(功能说明)

[STM32F4] 【F446RE开发板试用】+ MDK5.15建立STM32F446标准库工程模板

[复制链接]
 楼主| hbzjt2011 发表于 2015-9-30 11:52 | 显示全部楼层 |阅读模式
本帖最后由 hbzjt2011 于 2015-9-30 13:48 编辑

MDK5.15建立STM32F446标准库工程模板

一、环境说明:

1:Keil uVision5.15

2:STM32F446RE Nucleo



二、获取ST库文件:

      在新建工程模板之前,首先获取ST库的源码STM32F4xx_DSP_StdPeriph_Lib_V1.5.1,F4库函数的版本为1.5.1,下载文件为3个压缩包,解压即可得到库文件。

1.jpg


三、创建工程

3.1  工程目录创建:创建名称为STM32F4xx_StdPeriph_Templates的文件夹,在此文件夹下分别创建“Libraries”、“MDK-ARM”、“Output”文件夹和“readme.txt”文件。其中“readme.txt”文件是关于本工程的说明文件,可以不添加;

2.jpg


3.jpg

3.2 打开Keil uVision软件,在软件工具栏Project->New uVision Project...新建工程文件,将新建的工程文件保存在MDK-ARM文件夹下,取名为Project,点击“保存”;

4.jpg

5.jpg

3.3 接下来选择我们使用的芯片型号,我们使用的是STM32F446RET6U,有512KB FLash和128KB SRAM。按如下选择,点击“OK”;
6.jpg

3.4 接下来是管理实时环境,不用选,关闭即可;

8.jpg


3.5 此时我们的工程新建成功,如下图所示,但是里面还没有任何文件,接下来我们在工程中添加所需的文件;

9.jpg
3.6 往模板里添加库文件。将下载的ST库文件中\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries目录下的CMSIS和STM32F4xx_StdPeriph_Driver文件夹拷贝到\STM32F4xx_StdPeriph_Templates\Libraries文件夹下,其中CMSIS文件夹core_cm4.h和startup_stm32f446xx.s文件即可,
这两个文件分别位于标准库\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries\CMSIS\Include和\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm目录下;
10.jpg

11.jpg

将以标准库中的以下选中文件拷贝到MDK-ARM文件夹下;
12.jpg

3.7 接下来回到新建的MDK工程中,将刚才文件夹里的内容添加进工程,这样就可以在MDK中管理这些文件了。

1、将Tartget1下的子文件Source Group 1 删除。将Target 1的名称改为“STM32F446xx”。
13.jpg

2、往工程里添加五个组,分别命名为CMSIS、Doc、User、MDK-ARM、STM32F4xx_StdPeriph_Driver。其中User用来存在用户自定义的应用程序,STM32F4xx_StdPeriph_Driver用来存放库文件,CMSIS用来存放M4系列MCU通用文件,MDK-ARM用来存放启动文件,Doc用来存放工程说明文件。

15.jpg

3、接下来往这些新建组中添加文件,双击User组,向里面添加main.c文件和stm32f4xx_it.c文件。
16.jpg

4、在STM32F4xx_StdPeriph_Driver组里面添加目录\STM32F446\STM32F4xx_StdPeriph_Templates\Libraries\STM32F4xx_StdPeriph_Driver\src里面的全部文件。
17.jpg
       当然,src里面的驱动文件也可以需要哪个就添加哪个,这里全部添加为了以后使用方便,还可以通过配置stm32f4xx_conf.h文件来选择性添加,只有在stm32f4xx_conf.h文件中配置的文件才会被编译。

5、在CMSIS组中添加system_stm32f4xx.c文件。
18.jpg

6、在组MDK-ARM文件夹下添加目录\STM32F446\STM32F4xx_StdPeriph_Templates\Libraries\CMSIS文件夹下的startup_stm32f446xx.s启动文件。
19.jpg

7、在Doc组中添加readme.txt说明文件。
20.jpg

到此文件添加完毕。

7、最后,配置MDK的配置选项。点击工具栏中的魔术棒按钮,也就是Target  Option...选项。在弹出的对话框中,把Use MicroLIB勾上,为了可以使用串口Printf函数打印数据。
21.jpg

8、配置Output选项卡。点击Select Folder for Objects...,设置编译输出文件保存的位置,选择Output文件夹。同时将Create HEX File选项勾上。
22.jpg

9、配置C/C++选项卡。在Define里面输入USE_STDPERIPH_DRIVER,STM32F446xx;将One ELF  Section per Function勾上,在Include Paths栏中,添加库文件搜索路径。
26.jpg
27.jpg

10、配置Debug选项。选择ST-Link Debugger,点击Settings按钮,点击Debug选项卡,选择SW,点击Flash Download 选项卡,选择STM32F4xx 512KB Flash,同时将Reset and Run选项勾上。
30.jpg
31.jpg
33.jpg

11、至此,所有配置完成。点击编译按钮,编译工程,此时会出现很多错误。
35.jpg
这是宏定义对芯片的选择问题,把stm32f4xx_fsmc.c 禁止参与编译即可。处理:右键 STM32F4xx_StdPeriph_Driver下的stm32f4xx_fsmc.c,去掉include in targert build选项即可。此时在编译,无错误,无警告,编译完成。

36.jpg
37.jpg

至此,工程模块就创建完成了,我们可以在工程中添加自己想要增添的代码来创建自己需要的工程。

附件为工程源代码:
STM32F446.rar (9.49 MB, 下载次数: 398)

打赏榜单

21ic小喇叭 打赏了 10.00 元 2015-10-20

630183258 发表于 2015-10-5 22:11 | 显示全部楼层
楼主厉害啊
630183258 发表于 2015-10-5 22:13 | 显示全部楼层
把所有的库文件都加进去编译比较费时间,用哪个加哪个估计会好点。
694198235 发表于 2015-10-6 13:51 | 显示全部楼层
不错楼主,
张吱吱 发表于 2019-6-21 23:11 | 显示全部楼层
下来压缩包解压不了
玛尼玛尼哄 发表于 2019-6-22 22:36 | 显示全部楼层
看你们都很熟练的样子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎参与LabVIEW版块的讨论学习! 点我一键即达

256

主题

2827

帖子

44

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:欢迎参与LabVIEW版块的讨论学习! 点我一键即达

256

主题

2827

帖子

44

粉丝
快速回复 在线客服 返回列表 返回顶部