发新帖本帖赏金 10.00元(功能说明)我要提问
返回列表
打印
[STM32F4]

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

[复制链接]
4741|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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个压缩包,解压即可得到库文件。



三、创建工程

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




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



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


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




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


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目录下;




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


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

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


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



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


4、在STM32F4xx_StdPeriph_Driver组里面添加目录\STM32F446\STM32F4xx_StdPeriph_Templates\Libraries\STM32F4xx_StdPeriph_Driver\src里面的全部文件。

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

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


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


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


到此文件添加完毕。

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


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


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



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




11、至此,所有配置完成。点击编译按钮,编译工程,此时会出现很多错误。

这是宏定义对芯片的选择问题,把stm32f4xx_fsmc.c 禁止参与编译即可。处理:右键 STM32F4xx_StdPeriph_Driver下的stm32f4xx_fsmc.c,去掉include in targert build选项即可。此时在编译,无错误,无警告,编译完成。


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

附件为工程源代码:
STM32F446.rar (9.49 MB)

打赏榜单

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

沙发
630183258| | 2015-10-5 22:11 | 只看该作者
楼主厉害啊

使用特权

评论回复
板凳
630183258| | 2015-10-5 22:13 | 只看该作者
把所有的库文件都加进去编译比较费时间,用哪个加哪个估计会好点。

使用特权

评论回复
地板
694198235| | 2015-10-6 13:51 | 只看该作者
不错楼主,

使用特权

评论回复
5
张吱吱| | 2019-6-21 23:11 | 只看该作者
下来压缩包解压不了

使用特权

评论回复
6
玛尼玛尼哄| | 2019-6-22 22:36 | 只看该作者
看你们都很熟练的样子

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

157

主题

2338

帖子

41

粉丝