本帖最后由 hbzjt2011 于 2015-9-30 13:48 编辑
MDK5.15建立STM32F446标准库工程模板
一、环境说明:
1:Keil uVision5.15
2:STM32F446RE Nucleo
二、获取ST库文件:
三、创建工程
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选项即可。此时在编译,无错误,无警告,编译完成。
至此,工程模块就创建完成了,我们可以在工程中添加自己想要增添的代码来创建自己需要的工程。
附件为工程源代码: |