![STM32库开发实战指南:基于STM32F103(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/646/860646/b_860646.jpg)
第6章 新建工程——寄存器版
6.1 新建本地工程文件夹
为了使工程目录更加清晰,我们在本地电脑上新建1个文件夹用于存放整个工程,如命名为“LED”,然后在该目录下新建两个文件夹,具体见表6-1和图6-1。
表6-1 工程目录文件夹清单
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0052_0001.jpg?sign=1739287130-zph3uH5DTxxYb5JC5Ai5hBnWNSusyasq-0-7f2f7acb3f91b829a5c9e1f1a47b1268)
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0052_0002.jpg?sign=1739287130-Sh83qHCmpt03Jb83TkEvIFT1rKdRkKow-0-67b7de9684d244f3a90f5c85947f112c)
图6-1 工程文件夹目录
在本地新建好文件夹后,在文件夹下新建一些文件,见表6-2。
表6-2 工程目录文件夹内容清单
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0052_0003.jpg?sign=1739287130-gNyiajZ6CEPZrsvf4BgcAIZJG1ZYPMwC-0-eff3baa54fdcbbe5171abed57686c149)
6.2 新建工程
打开KEIL5,新建一个工程,见图6-2。工程名根据喜好命名,这里取LED-REG,直接保存在LED文件夹下。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0053_0001.jpg?sign=1739287130-azR2y9IUIi3cBniT9OOUc6QtV9Xq5IMb-0-f83e001321768aa9929f23ea472064f9)
图6-2 在KEIL5中新建工程
1.选择CPU型号
这个根据自己开发板使用的CPU具体型号来选择,F103“指南者”选STM32F103VE型号,见图6-3。如果这里没有出现想要的CPU型号,或者一个型号都没有,那么肯定是你的KEIL5没有添加device库,KEIL5不像KEIL4那样自带了很多MCU的型号,而是需要自己添加。关于如何添加请参考第1章。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0053_0002.jpg?sign=1739287130-6HXakGPpowcZmfedtbGD35MSO1QoZ8fH-0-d5def12f0a7e96944ac910000dfb5e15)
图6-3 选择具体的CPU型号
2.在线添加库文件
用寄存器控制STM32时我们不需要在线添加库文件,这里单击关闭按钮,见图6-4。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0053_0003.jpg?sign=1739287130-Ow4aV9HulPjTPwmQrKYKQeusHspy2lvC-0-8094f0803f52cadeafcffb037b4f36ea)
图6-4 库文件管理
3.添加文件
在新建的工程中添加文件,可以从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。我们对要添加的3个文件说明如下,见图6-5。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0054_0001.jpg?sign=1739287130-0UGyKLeQAuPFIosOX7GVXTGbDHAETvB3-0-615b2356c663b19b3e47d3c0a4ea16fe)
图6-5 在工程中添加文件
(1)startup_stm32f10x_hd.s
这是启动文件、系统上电后第一个运行的程序,由汇编语言编写,C编程用得比较少,可暂时不管,这个文件从固件库里面拷贝而来,由官方提供。文件在这个目录下:STM32F10x_Std Periph_Lib_V3.5.0\Libraries\CMSIS\CM3\Device Support\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s。
(2)stm32f10x.h
用户手动新建,用于存放寄存器映射的代码,暂时为空。
(3)main.c
用户手动新建,用于存放main函数,暂时为空。
4.配置魔术棒选项卡
这一步的配置工作很重要,很多时候,串口用不了printf函数,编译有问题,或下载有问题,都是在这个步骤的配置中出了错。
1)在Target选项卡中选中“Use Micro LIb”复选框,为的是在日后编写串口驱动的时候可以使用printf函数,见图6-6。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0054_0002.jpg?sign=1739287130-9iTmCXHdwZBq1UoJgWMI8tTgXHdBzwx2-0-74c839b7eced23e94418c7ad6a963194)
图6-6 选中微库
2)在Output选项卡中把输出文件夹定位到工程目录下的Output文件夹。如果想在编译的过程中生成hex文件,那么把Create HEX File选项勾选上,见图6-7。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0055_0001.jpg?sign=1739287130-dWDNkeU7oSF2t8LFKX44RSvpQegRU7Cf-0-3b4a45625f88197c887b6c3457b2d1ac)
图6-7 配置Output选项卡
3)在Listing选项卡中把输出文件夹定位到工程目录下的Listing文件夹,见图6-8。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0055_0002.jpg?sign=1739287130-cDX2DeaWWAlEY6ucxiriDN9igRb1Ezsp-0-bfdc422d8b2ae25713af21c03ad831c2)
图6-8 配置Listing选项卡
5.下载器配置
在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号,具体过程如下。
1)Debug选项的配置见图6-9。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0055_0003.jpg?sign=1739287130-lAcY7hrWv8xPPehdLf60Ekf2Qxg5AOw1-0-3724cda7719c45b4e3d5e9320ff55a54)
图6-9 在Debug选项卡中选择CMSIS-DAP Debugger
2)Utilities选项的配置见图6-10。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0055_0004.jpg?sign=1739287130-F6wj7hv3rNc0VjAa08nxpY7Fzg7A3Qvm-0-be15319f08ccc7106722d737c883ad18)
图6-10 在Utilities选项卡中选择Use Debug Driver
3)Debug选项的配置见图6-11。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0056_0001.jpg?sign=1739287130-p5ZsGNo0LiUPlmTjwj9Yv1jjGNQX4B4F-0-92fc46d7658b8245b1adc09af6c74c16)
图6-11 Debug选项的配置
选择目标板,具体选择多大的Flash要根据板子上的芯片型号决定,见图6-12。F103指南者选512k。这里面有个小技巧就是把Reset and Run也勾选上,这样程序下载完之后就会自动运行,否则需要手动复位。擦除的Flash大小选择Erase Sectors即可,不要选择Erase Full Chip,下载会非常慢。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0056_0002.jpg?sign=1739287130-iKu89iUB4nZ7JR5P9M5dnuwxipuQJZrp-0-e0bef0fdb099287f3f0ba3886b218171)
图6-12 选择目标板
6.3 下载程序
如果前面的步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。下载程序不需要其他额外的软件,直接单击KEIL中的LOAD按钮即可,见图6-13。
![](https://epubservercos.yuewen.com/94D5D1/7782448803199301/epubprivate/OEBPS/Images/figure_0056_0003.jpg?sign=1739287130-jiNhbUNz5niF1t9HEEW8CZfTx28GBeIX-0-48baa4771c7429031c1e17e41a257304)
图6-13 下载程序
程序下载后,在Build Output窗格中如果显示出“Application running...”则表示程序下载成功。如果没有出现实验现象,按复位键试试。当然,这只是一个工程模板,我们还没写程序,开发板不会有任何现象。
至此,一个新的工程模板新建完毕。