STM32入门之基于标准库的工程模板创建

一、标准库文件夹的简单介绍

把在ST官网下载的标准库压缩包文件进行解压,得到如下几个文件夹:

_htmresc文件夹:主要保存的是ST公司的一些logo图片,这个与工程模板的创建没有什么关系。

Libraries文件夹:主要包含两个子文件夹,CMSIS和STM32F10x_StdPeriph_Driver。CMSIS 标准英文全称是 Cortex MicroController Software Interface Standard,翻译为中文意思就是 ARM Cortex 微控制器软件接口标准,是ARM和芯片厂家之间建立的一套标准。另一个文件夹是STM32F1系列芯片的一些外设驱动代码,这些在后续的使用中非常重要。

Project文件夹:包含用驱动库写的例子和工程模板,其中那些为每个外设写好的例程对我们非常有用,我们在学习的时候就可以参考这里面的例程,非常全面。

Utilities:包含了基于 ST 官方实验板的例程,不需要用到,略过即可。

stm32f10x_stdperiph_lib_um.chm:库帮助文档,在这里可以合理查询每个外设的函数说明,非常详细。这是一个已经编译好的 HTML 文件,主要讲述如何使用驱动库来编写自己的应用程序。

二、基于标准库的工程模板创建

1.建立本地工程目录

在本地电脑新建一个名为“工程模板”的文件夹,并在这个文件夹下创建5个子目录,如图所示:

doc文件夹:存放工程相关的技术说明文档等,如readme,一般由程序开发人员编写。

drivers文件夹:这里面需要再创建两个子目录src和inc,src主要用来保存.c源文件,inc主要保存.h头文件。

libraries文件夹:存放CMSIS文件夹和STM32F10x_StdPeriph_Driver文件夹,这两个文件夹不需要手动创建,去解压的标准外设库包里复制过来,文件所在路径为:“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries”。

project文件夹:存放Keil-MDK5工程文件

user文件夹:存放main.c等文件,这几个文件不需要用户自己创建,直接从标准库包中复制过来就可以。文件所在的路径为:“STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template”。

2.新建工程

打开Keil uVision5软件,点击 Project-->New uVision Project新建一个工程,工程名要注意使用英文,如果使用中文名可能会出现一些奇怪的错误。将工程命名为:demo,并将其保存在“工程模板-->project”目录下。

点击保存后,会弹出一个Device的芯片选择窗口,在这里我们根据自己实际使用的芯片进行选择,比如我使用的开发板芯片是STM32F103RCT6,那么在这就选择STMicroelectronics-->STM32F1 Series-->STM32F103-->STM32F103RC,点击OK,把新弹窗关闭即可。

3.添加工程分组

点击品字型图标,添加工程分组

在弹出的窗口下点击虚线框,依次新建user、startup、cmsis、drivers、libraries这5个分组。

4.添加文件到对应分组

user分组:添加的文件包含main.c和stm32f10x_it.c。选中user分组,点击Add Files,定位到 “工程模板\user” 目录下,添加main.c和stm32f10x_it.c文件。

startup分组:需要添加的文件是启动文件startup_stm32f10x_hd.s,先鼠标选中startup分组,然后点击Add Files按钮。

定位到 “工程模板\libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm” 目录下,如图所示,文件类型选择所有文件,选择startup_stm32f10x_hd.s,点击Add,然后关闭窗口,可以看到文件添加完成。

启动文件的选择和芯片的FLASH闪存大小有关:stm32f103rct6的flash大小为256K,属于大容量产品。

startup_stm32f10x_ld.s:适用于小容量产品 ,FLASH≤32K

startup_stm32f10x_md.s: 适用于中等容量产品 ,64K≤FLASH≤128K

startup_stm32f10x_hd.s:适用于大容量产品,256K≤FLASH

cmsis分组:添加的文件包含core_cm3.c和system_stm32f10x.c。选中cmsis分组,点击Add Files,定位到 “工程模板\libraries\CMSIS\CM3\CoreSupport” 目录下,添加core_cm3.c文件,定位到 “工程模板\libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x” 目录下,添加system_stm32f10x.c文件。

driver分组:添加的文件是用户自己编写的.c源文件。选中driver分组,点击Add Files,定位到“工程模板\driver\src”目录下,添加用户编写的.c源文件。因为当前并没有编写任何文件,所以暂时为空。

libraries分组:添加的文件为STM32标准外设库驱动.c源文件。选中libraries分组,点击Add Files,定位到 “工程模板\libraries\STM32F10x_StdPeriph_Driver\src” 目录下,按下键盘上的按键ctrl+a,选中所有文件,点击Add添加所有文件。

最后点击OK按钮,完成分组文件的添加。

5.配置魔术棒选项

点击optiont for target按钮,打开配置弹窗。

在弹窗的Target选项卡页面中,Code Generation ARM Compiler编译工具链选择Use default compiler version 5,同时把Use Micro LIB 选项也勾选上。

在弹窗的Output选项卡页面,勾选Creat HEX File选项,这是用来生成可执行文件的。

在弹窗的C/C++选项卡页面,添加全局宏:STM32F10X_HD,USE_STDPERIPH_DRIVER。

在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。

STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置。

USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件

添加编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。

同时,点击Inclued Paths菜单栏右侧的省略号,添加.c源文件的头文件路径。

在跳出的弹窗中,点击虚线框,点击省略号浏览找到对应的头文件路径,点击 X 号可删除不需要的路径。

此处我们需要添加如下几个头文件路径:

\工程模板\user

\工程模板\driver\inc

\工程模板\libraries\CMSIS\CM3\CoreSupport

\工程模板\libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

\工程模板\libraries\STM32F10x_StdPeriph_Driver\inc

点击OK,完成头文件路径的添加

最后,在Option for target配置弹窗中点击OK,完成配置。

6.修改main.c文件,完成编译

在右侧Project窗口中点击user分组,打开user分组下的main.c文件

将main.c文件中的原有代码全部删除,修改如下:

C
#include "stm32f10x.h"
 
int main(void)
{  
    while (1)
    {
      
    }
}

点击Rebuild按钮,编译无报错,无警告表示整个工程模板创建完成,后续代码的编写就在此工程模板的基础上修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值