开发环境的搭建

时间:2022-12-12 09:32:33

1、MDK软件安装

我的版本为mdk5.14,双击该安装包,注意安装路径不要包含空格和中文,安装完成后,还没办法去开发,因为MDK5采用不同支持包来支持不同的芯片,刚开始没有相应的支持包的。所以要去安装相应平台的支持包-keil STM32F4xx_DFP 2.9.0.支持包安装完成后就可以进行F4系列芯片的开发。

2、USB串口驱动的安装

a、USB串口作用

1)、可以当串口使用。

2)、如果USB串口连接到STM32的串口1(STM32 ISP下载只能是串口1)的话,那么可以用串口来下载程序。

3)、因为要连接到USB,所以可以用来USB供电。

b、USB串口驱动芯片型号:CH340;串口下载工具:mcuisp(FlyMcu);

c、ST LINK的安装。

3、新建MDK5工程

project->New μVision Project;新建一个TEST文件,并在其中新建一个USER文件,将工程名字设为test保存在USER文件里面;开发环境的搭建

弹出的窗口,选择STMicroelectronics->STM32F4 Series->STM32F429->STM32F429ZI;在弹出的窗口,它是MDK5新增的一个功能,在这个界面可以添加自己需要的组件,从而方便构建开发环境,在这里选择取消。->目前只是建了一个框架,还需要添加启动代码以及.c等文件。启动代码的作用:a、堆栈(SP)的初始化;b、初始化程序计数器(PC);c、设置向量表异常事件的入口地址;d、调用main函数。下面修改启动文件startup_stm32f4xx.s,具体是Reset_Handler函数,

Reset_Handler  PROC

          EXPORT Reset_Handler       [WEAK]

      ;IMPORT SystemInit  ;寄存器代码,不需要在这里调用SystemInit函数

                   ;故屏蔽掉,库函数版本代码,可以留下,不过需要在

                   ;外部实现SystemInit函数,否则会报错

       IMPORT    __main

            LDR  R0,=0xE000ED88  ;使能浮点运算CP10,CP11

            LDR  R1,[R0]

            ORR  R1,R1,#(0xF<<20)

            STR  R1,[R0]

           ;LDR R0,=SystemInit  ;寄存器代码,未用到,屏蔽

           ;BLX    R0  ;寄存器代码,未用到,屏蔽

            LDR  R0,=__main

            BX  R0

            ENDP

开发环境的搭建不然会报错!

这段代码主要是开启了STM32F4硬件的FPU的代码,以使能STM32F4的浮点运算单元。

特别注意:我们在汇编代码里面使能FPU,所以在MDK里面也要设置使用FPU,否则代码可能会无法运行;Options for target 'Target1',打开Target选项卡,在Code Generation栏里面选择Use FPU,这样MDK编译生成的代码就可以直接使用硬件FPU了。注意设置板子的外部晶振频率。

Target1->Source Group1双击,打开startup_stm32f4xx.s,选择add,

开发环境的搭建

下面去编译一下,会出错,因为没有main函数

开发环境的搭建

下面把各种文件归类处理:

USER文件夹下:startup_stm32f4xx.s和test.uvproj文件等

开发环境的搭建

在USER同目录下新建OBJ文件夹:用来存放这些编译过程中产生的过程文件(包括.hex文件)

开发环境的搭建

由于上面还没有任何代码在工程里面,这里把系统代码复制过来(SYSTEM文件夹,该文件夹由ALIENTEK提供,寄存器版和库函数版不能混淆,可以快速构建自己的工程);如下图所示:

开发环境的搭建

然后在USER目录下面去打开test.uvprojx工程文件,

开发环境的搭建在弹出的对话框中

开发环境的搭建

接着新建一个文件test.c保存在USER下面,然后双击USER组,则弹出加载文件的对话框,选择test.c到USER组下。

开发环境的搭建

然后对test.c进行简单的编辑

开发环境的搭建

如果此时编译的话,则生成的过程文件还是会存放在USER文件夹下,所以先设置输出路径再编译。选择options for target,弹出如下对话框:在output下面选择Create HEX File。单击Select Folder for Objects,在弹出的对话框中找到OBJ文件,再单击OK。

接着设置Listings文件路径,同样单击Select Folder for Objects按钮,找到OBJ文件夹再单击OK,

开发环境的搭建

这时候进入delay.c文件,可以看到红色×,表示有错误,

开发环境的搭建

再次进入Options for Target,选择C/C++,选择Include Paths,把要加入的文件夹路径加入进来,如下图:

开发环境的搭建

下面进行编译、连接即可!