![STM32库开发实战指南:基于STM32F4](https://wfqqreader-1252317822.image.myqcloud.com/cover/737/852737/b_852737.jpg)
第5章 新建工程——寄存器版
5.1 新建本地工程文件夹工程
5.1.1 新建本地工程文件夹
为了使工程目录更加清晰,在本地电脑上新建1个文件夹用来存放整个工程,如命名为“LED”,然后在该目录下新建两个文件夹,具体见表5-1。
表5-1 工程目录文件夹清单
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0046_0001.jpg?sign=1738915823-cFcfFC6lDQarChsh4Ats4IvZJHYYSXWH-0-2a897fdc255959362ce0992030084431)
工程文件夹目录界面见图5-1。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0046_0002.jpg?sign=1738915823-qJH85O3N6jk2KnHb9Aer0MQI6okOz6Lw-0-a09a7dcbddae0e2afd7753569a78e169)
图5-1 工程文件夹目录
在本地新建好文件夹后,在文件夹下新建一些文件,见表5-2。
表5-2 工程目录文件夹内容清单
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0046_0003.jpg?sign=1738915823-HrEAKT8OYj3wWVCMXU7yw8mWEeiHypX4-0-8187b2340681267460081916dc36e30f)
5.1.2 新建工程
打开KEIL5,新建一个工程,见图5-2,可根据个人喜好命名,这里取LED-REG,直接保存在LED文件夹下。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0047_0001.jpg?sign=1738915823-d8TLTTiSTk8rSZ5M0Ot5BoVHFR79Asv9-0-0bfa9b28dd18e25995e6927f2438b6a9)
图5-2 在KEIL5中新建工程
1. 选择CPU型号
根据你所用开发板上的CPU型号来选择,F429-“挑战者”选STM32F429IGT×型号,见图5-3。如果这里没有出现你想要的CPU型号,或者一个型号都没有,那么肯定是KEIL5没有添加device库。KEIL5不像KEIL4那样自带了很多型号的MCU,而是需要自己添加,关于如何添加请参考第1章。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0047_0002.jpg?sign=1738915823-0r1iHucxW9x7lDjnzg4loSZT46HBUc6M-0-9a202a2abf7a8f2ffb8536aa8bafd91c)
图5-3 选择具体的CPU型号
2. 在线添加库文件
使用寄存器控制STM32时,不需要在线添加库文件,所以这里关掉这个窗口,见图5-4。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0048_0001.jpg?sign=1738915823-zkYad1PfXO2haOLQg7Dv6BVxzmrz3a9y-0-a128b4b3d616c6a9818ff8943d65937c)
图5-4 库文件管理
3. 添加文件
在新建的工程中添加文件,文件从本地建好的工程文件夹下获取,双击文件夹就会出现添加文件的路径,然后选择文件即可,见图5-5。我们对要添加的3个文件说明如下。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0049_0001.jpg?sign=1738915823-fatW8Zd5A2CZUsEUTXY5Lgo2RNJPoOFf-0-14d04bed65c8baaa4f3cf9a46fe45a9e)
图5-5 在工程中添加文件
(1)startup_stm32f429_439xx.s
此文件为启动文件,系统上电后第一个运行的程序,由汇编语言编写,C语言编程用得比较少,可暂时不管,这个文件从固件库里面复制而来,由官方提供。该文件在以下目录中:
F4固件库\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\STM32F4xx_DSP_StdPeriph_Lib_V1.5.1\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f429_439xx.s
(2)stm32f4xx.h
用户手动新建此文件,用于存放寄存器映射的代码,暂时为空。
(3)main.c
用户手动新建此文件,用于存放main函数,暂时为空。
4. 配置魔术棒选项卡
这一步的配置工作很重要,很多用户的串口用不了printf函数,或者编译有问题,下载有问题,都是这个步骤的配置出了错。
1)在Target中选中“Use MicroLIB”(使用微库),便于日后编写串口驱动时可以使用printf函数。而且有些应用如果用了STM32的浮点运算单元FPU,那么一定要同时开微库,不然有时会出现各种奇怪的现象。FPU的开关选项在微库配置选项下方的“Use Single Precision”中,默认是启用的,见图5-6。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0049_0002.jpg?sign=1738915823-dNdHKcxjU6GBQ3sQc8Pc1DPjOBgXx2bc-0-ae3ccd45d9be14e8b6b9bf11381df3dd)
图5-6 添加微库
2)在Output选项卡中把输出文件夹定位到工程目录下的Object文件夹。如果想在编译的过程中生成hex文件,那么选中Create HEX File选项,见图5-7。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0050_0001.jpg?sign=1738915823-nEfSmudyDBy2zmnjDh00aZ1EVZwlCFeD-0-ade1146249d8fb4d6cf5be2d18cd9731)
图5-7 配置Output选项卡
3)在Listing选项卡中把输出文件夹定位到工程目录下的Listing文件夹,见图5-8。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0050_0002.jpg?sign=1738915823-oM1xyaVSo9rvVUzHKsTdfPEPzDfGQXiG-0-19fb49f223a2323b1fe19c91040c2b3c)
图5-8 配置Listing选项卡
5. 下载器配置
在Fire-Debugger仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号,具体过程如下。
1)Debug选项配置见图5-9。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0051_0001.jpg?sign=1738915823-PDhTsCPpOxXT8bLQUj9MTgZ1aFD7SeMS-0-167303a1b7da76315028117646aac1f8)
图5-9 CMSIS-DAP Debugger
2)Utilities选项配置见图5-10。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0051_0002.jpg?sign=1738915823-NJ5gSrKN21HjRqCRF9YhIWslSjavicrK-0-4f739604cd9c9678089901b3c4ced30c)
图5-10 选择Use Debug Driver
3)Debug Settings选项配置见图5-11。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0052_0001.jpg?sign=1738915823-So2hrWpk0t6DkucATiSauDQzFpXnVKo7-0-30132e5b8f52416eca32b2d029e1e697)
图5-11 Debug Settings选项配置
选择目标板时,具体选择多大的Flash要根据板子上的芯片型号决定。F429-“挑战者”选1MB。这里面有个小技巧就是把“Reset and Run”也勾选上,这样程序下载完之后就会自动运行,否则需要手动复位。要擦除的Flash大小,选择Erase Sectors即可,不要选择Erase Full Chip,不然下载会比较慢。
![](https://epubservercos.yuewen.com/C2F957/6771342304861701/epubprivate/OEBPS/Images/figure_0052_0002.jpg?sign=1738915823-pTdCnP4aISQwHFPK80lAlai8TK0OwY5B-0-6ade06118d85d9ac2c1e77a14fd754a3)
图5-12 选择目标板