基于Nucleo开发板STM32F4XX模版的创建与ST-Link的配置

    本文将创建一个基于Nucleo开发板和KEIL5.14的工程模版,由一下几个部分组成:函数

    一、工程模版的创建
    二、STlink的设置与永远的流水灯
一、工程模版的创建
    1)在创建工程以前,首先创建一个存放模版文件的文件夹,咱们把它叫作template。而后在创建6个子文件夹:Doc,Libraries,Listing,Output,Project,USER,在Libraries里创建CMSIS和FWlib文件夹,在CMSIS中创建startup,这些文件夹的名字能够任意取的,这样命名只是为了方便识别。对于这些文件夹用来存放什么文件,后面将会有说明。新建好的目录结构以下图1.1所示。
图1.1      文件目录结构
    2)接下来打开KEIL,点击KEIL的菜单;Project->New Project,而后将目录定位到刚刚创建的Project文件夹下。同时工程名取为template点击保存,咱们的工程文件就放在Project文件夹下面。操做过程以下图1.2所示
图1.2     工程创建
    3)接下来会出现一个选择Device的界面,就是要咱们选择具体的CPU芯片型号,针对咱们的板子,咱们选择STM32F411RE,该过程必定要选择正确。
图1.3     芯片型号选择
点击OK,MDK会弹出 Manage Run-Time Environment 对话框,如图1.4所示。这是MDK5的新功能,在这个界面咱们能够添加本身须要的组件,从而方便构建开发环境,这里咱们很少作介绍。因此在图1.4中咱们直接点击cancel。
图1.4      Manage Run-Time Environment界面
 
    4) 下面咱们将要把官方的固件库包里的源代码复制到咱们的工程目录文件夹下面。找到STM32F4xx_DSP_StdPeriph_Lib\Libraries\STM32F4xx_StdPeriph_Driver,将其目录下的src,inc文件夹copy到咱们刚才创建的FWlib文件夹下面,src存放的是固件库的.c文件,inc存放的是对应的.h文件,如图1.5所示。
1.5     官方库源码文件夹
    5)下面咱们将固件库包里与启动相关的代码复制到咱们的工程目录CORE之下。
打开官方固件包,定位到目录..\STM32F4xx_DSP_StdPeriph_Lib\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm下,将startup_stm32f411xe.s复制到CMSIS文件夹下的startup文件夹下,而后定位到目录STM32F4xx_DSP_StdPeriph_Lib\Libraries\CMSIS\Include中,将其中的core_cm4.h、core_cmFunc.h、core_cmInstr.h、core_cmSimd.h复制到CMSIS文件夹下面
1.6     CMSIS文件夹下文件
    
     6)     接下来复制工程模板须要的一些其余头文件和源文件到工程。首先定位到目录: STM32F4xx_DSP_StdPeriph_Lib\Libraries\CMSIS\Device\ST\STM32F4xx\Include将里面的两个头文件stm32f4xx.h、system_stm32f4xx.h 复制到CMSIS文件夹之下。再进入 STM32F4xx_DSP_StdPeriph_Lib\Project\STM32F4xx_StdPeriph_Templates ,将其中的 main.c、stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h、system_stm32f4xx.c复制到USER文件夹下。
    7)     通过前面6个步骤咱们将固件库的相关内容复制到了工程目录中,如今将他们添加到工程中。打开工程,右键单击Target1,选择Manage Compoments,在Project Targets一栏,咱们将Target1名字修改成template,Groups一栏删掉Source Group1,创建5个Groups: Doc、CMSIS、FWlib、USER、startup,如图1.7所示
图1.7     新建Groups
         8)向Groups添加文件定位到咱们以前创建的那些文件夹中,对于写代码来讲咱们通常只须要用到其中某些外设,就只添加那些外设就能够了这里创建模版因此所有添加,便于之后修改。另外stm32f4xx_fsmc.c、s tm32f4xx_cec.c tm32f4xx_fmc.c、s tm32f4xx_fmpi2c.c、s tm32f4xx_qspi.c s tm32f4xx_spdifrx.c 须要删除掉,不然会编译出错,如图1.8
图1.8     不删除库致使编译出错
 
图1.9     添加文件到FWlib
    9)     接下来要设置头文件存放路径,就是告诉MDK到哪里去寻找头文件,若是不设置就会出现错误。具体操做如图1.十、图1.11所示。 截图00.png
图1.10      设置头文件路径
 

图1.11 设置头文件路径
 
  这里咱们要添加的头文件路径为\Libraries\FWlib\inc、\USER、\Libraries\CMSIS,注意是 \Libraries\FWlib\inc,而不是 \Libraries\FWlib\src,千万不要弄错。
 
    10)接下来还要在咱们要编译工程,在编译以前咱们首先要选择编译中间文件编译后存放目录。方法是;点击魔术棒,而后选择“Output”下面的“Select folders of objects... ”而后选择为咱们新建的Output,而且将create hex file勾选上。同时将"Listing" 下面的“Select folders of objects... ”选择为咱们新建的Listing。如图1。12所示。 截图01.png
    图1.12     编译输出文件夹的选择
 
    11)在编译以前将main.c替换为一下内容
  1.  1 #include"stm32f4xx.h"
     2 voidDelay(__IO uint32_t nCount);
     3 voidDelay(__IO uint32_t nCount)
     4 {
     5   while(nCount--);
     6 }
     7 int main(void)
     8 {
     9   GPIO_InitTypeDef GPIO_InitStructure;
    10    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
    11    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    12    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    13    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    14    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    15    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    16    GPIO_Init(GPIOA,&GPIO_InitStructure);
    17    while(1)
    18   {
    19    GPIO_SetBits(GPIOA,GPIO_Pin_5);
    20    Delay(0x7FFFFF);
    21    GPIO_ResetBits(GPIOA,GPIO_Pin_5);
    22    Delay(0x7FFFFF);
    23   }
    24 }
与此同时,咱们要讲USER分组下面的stm43f4xx_it.c文件内容清空,或者删除掉其中的32行的#include "main.h"和144行的Systick_Handler函数内容。紧接着编译会看看是否有错误,最后编译成功。至此模版创建成功
二、ST-Link的设置与永远的流水灯
    1)点击魔术棒,选择Debug,在下拉菜单中选中ST-LINK debugger,而且在setting菜单中设置ort为SWD,速度选择4MHZ而后再点击Flash Download,将Program、Verify和Reset and Run选中,具体操做如图2.一、图2.二、图2.3 截图02.png
图2.1     ST-link的设置
 
截图03.png
图2.2     ST-LINK debug的设置
 
截图04.png
图2.3     Flash Download的设置
    2)完成后就能够单击下载按钮,能够看到板子的灯在闪烁,就不一一上图了。
 
附上具体代码





相关文章
相关标签/搜索