11. 新建工程—库函数版¶
了解STM32的标准库文件之后,我们就可以使用它来建立工程了,因为用库新建工程的步骤较多,我们一般是使用库建立一个空的工程, 作为工程模板。以后直接复制一份工程模板,在它之上进行开发。版本说明:MDK5.15 (MDK即KEIL软件)。 版本号可从MDK软件的“Help–>AboutuVision”选项中查询到。
11.1. 新建本地工程文件夹¶
为了工程目录更加清晰,我们在本地电脑上新建一个“工程模板”文件夹,在它之下再新建6个文件夹, 具体见表格 工程目录文件夹清单 。
在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下,即从固件库里面把这些文件拷贝到我们新建的工程下的文件夹里面, 具体见表格 工程目录文件夹内容清单 。如果是初学,不会新建则可以参考本书配套的建好的工程模版。
11.2. 开始新建工程¶
打开KEIL5软件,新建一个工程,具体见图 在KEIL5中新建工程 。 工程名根据喜好命名,我这里取BH-F407,BH是野火拼音的缩写,F407表示STM32的型号,然后把工程保存在ProjectRVMDK(uv5)文件夹下。
11.2.1. 选择CPU型号¶
这个根据你开发板使用的CPU具体的型号来选择,F407-霸天虎选STM32F407ZGTx,具体见图 选择具体的CPU型号 。 如果这里没有出现你想要的CPU型号,或者一个型号都没有,那么肯定是你的KEIL5没有添加STM32芯片包, KEIL5不像KEIL4那样自带了很多MCU的型号,KEIL5需要自己添加,关于如何添加请参考《如何安装KEIL5》这一章的安装STM32芯片包小节。
11.2.3. 添加组文件夹¶
在新建的工程中添加5个组文件夹,用来存放各种不同的文件,如何在工程中添加组具体见图 如何在工程中添加文件夹 。 文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。
11.2.3.1. 添加文件¶
先把表格 工程目录文件夹内容清单 提到的文件从ST标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件, 双击组文件夹就会出现添加文件的路径,然后选择文件即可,具体见图 如何在工程中添加文件 。
11.2.3.2. 设置文件是否加入编译¶
STM32F407只有FSMC功能,但是使用的固件库里面有FMC和FSMC的功能,如果这两个文件都同时编译的话,那么就会出错, 所以我们选择把FMC在工程里面屏蔽掉,就不编译。同时,固件库里面还有DMA2D和LTDC的库,但是F407都没有这两个功能, 所以我们也选择把这两个文件从工程里面屏蔽掉,具体方法见图 设置文件是否加入编译 。
11.2.4. 配置魔术棒选项卡¶
这一步的配置工作很重要,很多人串口用不了printf函数,编译有问题,下载有问题,都是这个步骤的配置出了错。
(1) Target中选中微库“ Use MicroLib”,为的是在日后编写串口驱动的时候可以使用printf函数。而且有些应用中如果用了STM32的浮点运算单元FPU, 一定要同时开微库,不然有时会出现各种奇怪的现象。FPU的开关选项在微库配置选项下方的“Use SinglePrecision”中, 默认是开的。具体设置见图 添加微库 。
(2) 在Output选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成hex文件,那么那Create HEX File选项勾上。 具体设置见。图 配置Output选项卡
(3) 在Listing选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。 具体设置见图 配置Listing选项卡 。
(4) 在C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径, 具体设置见图 配置C选项卡 。
在Define这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。
STM32F40_41xxx宏:为了告诉STM32标准库,我们使用的芯片是STM32F07型号,使STM32标准库根据我们选定的芯片型号来配置。
USE_STDPERIPH_DRIVER宏:为了让stm32f4xx.h包含stm32f4xx_conf.h这个头文件。
“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹, 就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)
11.2.5. 下载器配置¶
在仿真器连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号,具体过程看图示:
Debug选项配置
Utilities选项配置
Debug Settings选项配置
选择目标板
这一步的配置也不是配置一次之后完事,常常会因为各种原因需要重新选择,当你下载的时候,提示说找不到Device的时候,请确保该配置是否正确。 有时候下载程序之后,不会自动运行,要手动复位的时候,也回来看看这里的“Reset andRun”配置是否失效。 F407-霸天虎用的STM32的FLASH大小是1M,所以这里选择1M的容量,如果使用的是其他型号的,要根据实际情况选择。
11.3. 下载程序¶
如果前面步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。下载程序不需要其他额外的软件,直接点击KEIL中的LOAD按钮即可, 具体见图 下载程序 。下载程序的时候需要用仿真器连接电脑和开发板且开发板要供电。
程序下载后,Build Output选项卡如果打印出 Application running…则表示程序下载成功。如果没有出现实验现象,按复位键试试。 当然,这只是一个工程模版,我们还没写程序,开发板不会有任何现象。
至此,一个基于固件库编程的新的工程模版建立完毕。
11.4. 补充说明¶
更多关于编译器方面的说明参考此链接:https://doc.embedfire.com/stm32_products/must_read/zh/latest/faq/questions.html#keilarm-compiler-v5-v6