建立一个STM32工程
前期准备: 版本说明:MDK5.15,如果有更高的版本可使用高版本。
版本号可从 MDK软件的“Help–>About uVision”选项中查询到。
- 新建本地工程文件夹
为了工程目录更加清晰,我们在本地电脑上新建 1 个文件夹用于存放整个工程,如命名为“工程模板”,然后在该目录下需要包含 六个文件夹。
为了让大家更直观,下面给出工程文件夹的详解图
以下是每个文件夹的作用
名称 | 作用 |
---|---|
Doc | 用来存放程序说明的文件,由写程序的人添加 |
Libraries | 存放的是库文件 |
Listing | 存放编译器编译时候产生的 C/汇编/链接的列表清单 |
Output | 存放编译产生的调试信息、hex 文件、预览信息、封装库等 |
Project | 用来存放工程 |
User | 用户编写的驱动文件 |
- 在KEIL5里建工程
打开 KEIL5,新建一个工程,工程名根据喜好命名,保存在 Project\文件夹下。
- 选择 CPU型号
这个根据你开发板使用的CPU具体的型号来选择,如果这里没有出现你想要的 CPU型号,或者一个型号都没有,那么肯定是你的KEIL5没有添加 device 库,KEIL5 不像 KEIL4 那样自带了很多 MCU 的型号,KEIL5 需要自己添加。
-
在线添加库文件
等下我们手动添加库文件,这里我们点击关掉.
-
添加组文件夹
在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。工程组文件夹详解
名称 | 存放的文件 |
---|---|
STARTUP | startup_stm32f10x_ld.s(此处存放的是启动文件,根据不同的STM32板子选择不同的启动文件) |
CMSIS | core_cm3.c、system_stm32f10x.c |
FWLB | 用户编写的文件如:main.c |
DOC | 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等 |
- 配置魔术棒选项卡
这一步的配置工作很重要,很多人串口用不了printf函数,编译有问题,下载有问题,都是这个步骤的配置出了错。
(1) Target 中选中微库“ Use MicroLib”,为的是在日后编写串口驱动的时候可以使用printf 函数。
(2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成 hex文件,那么那 Create HEX File 选项勾上。
(3) 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。
(4) 在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。
在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。
STM32F10X_HD宏:为了告诉 STM32标准库,我们使用的芯片类型是 STM32型号是大容量的,使 STM32标准库根据我们选定的芯片型号来配置。
USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件.
“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)
- 仿真器配置
8. 选择 CPU型号
这一步的配置也不是配置一次之后完事,常常会因为各种原因需要重新选择,当你下载的时候,提示说找不到 Device 的时候,请确保该配置是否正确。有时候下载程序之后,不会自动运行,要手动复位的时候,也回来看看这里的“Reset and Run”配置是否失效。这里用的 STM32 的 FLASH 大小是 1M,所以这里选择 1M 的容量,如果使用的是其
他型号的,要根据实际情况选择。
工程已经成功的建立,后面会陆续更新STM32工程。欢迎关注。