再造STM32---第八部分:新建工程—库函数版

版权声明: https://blog.csdn.net/qq_38351824/article/details/89790624

       了解 STM32 的标准库文件之后,我们就可以使用它来建立工程了,因为用库新建工程的步骤较多,我们一般是使用库建立一个空的工程,作为工程模板。以后直接复制一份工程模板,在它之上进行开发。


8.1 新建工程:

       版本说明: MDK5.27 (MDK 即 KEIL 软件)
       版本号可从 MDK 软件的“Help-->About uVision”选项中查询到。

8.1.1 新建本地工程文件夹:

       为了工程目录更加清晰,我们在本地电脑上新建一个“工程模板”文件夹,在它之下再新建 6 个文件夹,具体如下:
表 8-1 工程目录文件夹清单

名称 作用
Doc 用来存放程序说明的文件,由写程序的人添加
Libraries 存放的是库文件
Listing 存放编译器编译时候产生的 C/汇编/链接的列表清单
Output 存放编译产生的调试信息、 hex 文件、预览信息、封装库等
Project 用来存放工程
User 用户编写的驱动文件

                                                                     

       在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:

表 8-2 工程目录文件夹内容清单

名称 作用
Doc 工程说明.txt
Libraries CMSIS:里面放着跟 CM4 内核有关的库文件
STM32F4xx_StdPeriph_Driver: STM32 外设库文件
Listing 暂时为空
Output 暂时为空
Project 暂时为空
User stm32f4xx_conf.h:用来配置库的头文件
  stm32f4xx_it.h
stm32f4xx_it.c:中断相关的函数都在这个文件编写,暂时为空
  main.c: main 函数文件

8.1.2 新建工程:

       打开 KEIL5,新建一个工程,工程名根据喜好命名,我这里取 STM32F4_SUM,保存在Project\RVMDK(uv5)文件夹下。

1. 选择 CPU 型号:
       这个根据你开发板使用的 CPU 具体的型号来选择, M4 挑战者选 STM32F429IGT 型号。如果这里没有出现你想要的 CPU 型号,或者一个型号都没有,那么肯定是你的 KEIL5 没有添加 device 库, KEIL5 不像 KEIL4 那样自带了很多 MCU 的型号, KEIL5 需要自己添加,关于如何添加请参考《如何安装 KEIL5》这一章。

2. 在线添加库文件:
        等下我们手动添加库文件,这里我们点击关掉。

3. 添加组文件夹:
       在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可
表 8-3 工程内组文件夹内容清单

名称 作用
STARTUP 存放汇编的启动文件: startup_stm32f429_439xx.s
STM32F4xx
_StdPeriph_Drive
r
与 STM32 外设相关的库文件
misc.c
stm32f4xx_ppp.c(ppp 代表外设名称)
USER 用户编写的文件:
main.c: main 函数文件,暂时为空
stm32f4xx_it.c:跟中断有关的函数都放这个文件,暂时为空
DOC 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等

4. 添加文件:
       先把上面提到的文件从 ST 标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。

5. 设置文件是否加入编译:
       STM32F429 比较特殊,它有用 FMC 外设代替了 FSMC 外设的功能,所以它的库文件与其它型号的芯片不一样,在添加外设文件时, stm32f4xx_fmc.c 和 stm32f4xx_fsmc.c 文件只能存在一个而且我们的 STM32F429 芯片必须用 fmc 文件如果我们把外设库的所有文件都添加进工程,也可以使用下面的方法,设置文件不加入编译,这样也不会导致编译问题。这种设置在开发时也很常用,暂时不把文件加进编译,方便调试。

6. 配置魔术棒选项卡:
       这一步的配置工作很重要,很多人串口用不了 printf 函数,编译有问题,下载有问题,都是这个步骤的配置出了错
       (1) Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用printf 函数。而且有些应用中如果用了 STM32 的浮点运算单元 FPU,一定要同时开微库,不然有时会出现各种奇怪的现象。 FPU 的开关选项在微库配置选项下方的“UseSingle Precision”中,默认是开的。

       (2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上

       (3) 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。

       (4) 在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。

       在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。
        STM32F429_439xx 宏:为了告诉 STM32 标准库,我们使用的芯片是 STM32F429型号,使 STM32 标准库根据我们选定的芯片型号来配置。
        USE_STDPERIPH_DRIVER 宏:为了让 stm32f4xx.h 包含 stm32f4xx_conf.h 这个头文件。

       “Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。 (请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)

7. 下载器配置:
       本书使用的仿真器是 JLINK,可下载和仿真程序。JLINK 支持XP/WIN7/WIN8/WIN10 这几个操作系统,使用非常方便,具体配置见如下图。

8. 选择 CPU 型号:
这一步的配置也不是配置一次之后完事,常常会因为各种原因需要重新选择,当你下载的时候,提示说找不到 Device 的时候,请确保该配置是否正确。有时候下载程序之后,不会自动运行,要手动复位的时候,也回来看看这里的“Reset and Run”配置是否失效。M4 挑战者用的 STM32 的 FLASH 大小是 1M,所以这里选择 1M 的容量,如果使用的是其他型号的,要根据实际情况选择

一个新的工程模版新建完毕。
 

猜你喜欢

转载自blog.csdn.net/qq_38351824/article/details/89790624