五、STM32固件库介绍及库函数模板创建

为了方便移植和开发,减少很多不必要的麻烦,ST公司将很多函数封装成固件库

一、CMSIS标准介绍

CMSIS标准的英文全称是Cortex Microcontroller SoftwareInterface Standard,翻译过来就是ARM Cortex微控制器软件接口标准。因为基于Cortex内核的芯片生产厂商有很多,不只是ST公司。为了解决不同厂家生产的Crotex芯片软件兼容问题,ARM公司和其他芯片厂商制定了这个CMSIS标准。

二、固件库内文件夹及文件介绍

1、_htmresc文件夹

存放ST公司的logo

2、Libraries文件夹下有两个子文件夹CMSIS和STM32F10x_StdPeriph_Driver

CMSIS:存放符合CMSIS标准的文件,STM32的启动文件,内核文件,外设的头文件等

STM32F10x_StdPeriph_Driver:外设驱动文件,包含两个子文件夹inc和src

    inc:存放外设的头文件.h

扫描二维码关注公众号,回复: 12395794 查看本文章

    src:存放外设的源文件.c

一般经常使用的是stm32f10x_gpio和stm32f10x_rcc两个文件

3、Project文件夹下有两个子文件夹STM32F10x_StdPeriph_Examples和STM32F10x_StdPeriph_Template

STM32F10x_StdPeriph_Examples:ST公司提供的外设驱动例程

STM32F10x_StdPeriph_Template:ST官方的固件库的模板,通常不使用,自己设计

4、Utilities文件是ST公司屏幕版的源文件

5、stm32f10x_stdperiph_lib_um.chm帮助文档,很重要

6、重点介绍几个文件

STM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport下的core_cm3.h和core_cm3.c是内核文件,不需要改变

STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x存放着系统初始化的一些文件,不需要动,其中的startup文件夹包含了启动文件,启动文件夹包含的几个文件夹是根据编译器区分的,Keil5编译器用的是arm文件夹中的文件

根据芯片类型选择启动文件,末尾的hd表示高容量,md中等容量,ld低容量。可以百度查找使用芯片是什么容量的。

STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的stm32f10x.h头文件相当于单片机中的c51.h头文件,很重要,里面定义了stm32的总线、内存、寄存器、时钟、中断等

STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的system_stm32f10x.c和system_stm32f10x.h文件里面包含了片上外设的接入层程序,系统初始化函数也在里面。

文件之间的关系

三、库函数模板创建

(一)固件库的获取

要创建库函数工程模板,首先需要有固件库包,固件库的版本有很多,我们提供给大家的是最新V3.5版,如果后面有新版本出来,大家可按照同样的方法创建库函数工程模板。固件库包存放在光盘“8--STM32相关资料\STM32最新固件库v3.5”内,大家直接使用即可。如果朋友不嫌麻烦自己也可以到ST官网上下载,也可通过百度搜索下载,但是一定要下载STM32F1的固件库,如果下载的是STM32F4固件库,后面使用该固件库创建的工程模板下载到开发板上时就会出问题。为了保证光盘内的固件库包不被修改,自己可备份一份。

(二)创建函数工程

1、创建一个文件如“库函数模板创建”文件夹,在文件夹中新建三个子文件夹

User文件夹用来存放用户编写的程序文件,需要的头文件等;Obj文件夹存放系统生成的过程文件;Libraries文件夹存放从固件库中获取的文件

2、复制需要用到的文件

在Libraries文件夹中创建CMSIS子文件夹,并把下面五个文件复制到CMSIS文件夹:

把固件库中的:STM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport目录下的两个文件复制

启动文件复制,把固件库:STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm目录下的startup_stm32f10x_hd.s文件复制

把固件库中:STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x目录下的两个文件复制

3、头文件和源文件

在固件库文件夹中将:STM32最新固件库v3.5\Libraries目录下的STM32F10x_StdPeriph_Driver文件夹复制到自己创建的目录Libraries下

4、User文件夹

在固件库中将:STM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template下的五个文件复制到自己的User目录下

将固件库目录下:STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的stm32f10x.h文件复制到User文件夹下

5、创建工程

在自己新建的文件夹"库函数模板创建“中新建自己的工程,注意不要用中文名称

6、将文件添加到工程

为了方便管理,我们创建一个目录,点击目录创建图标

点击新建,创建如下四个目录

在目录中添加文件,选中User目录,点击添加

将User目录下的两个文件添加进来

在Startup目录下添加启动文件

记得文件类型选择为.s文件

在StdPeriph_Driver目录下添加外设驱动文件,添加最常用的两个外设驱动文件

在CMSIS目录下添加文件

点击OK,并退出

7、配置魔术棒

点击魔术棒图标,使用微库Use MicroLIB,便于用printf输出

在Output界面,选择Create HEX File

将Objects输出文件放在自己定义的文件夹下

同样,将Listings输出文件也放在自己定义的文件夹下

在C/C++界面需要添加宏定义USE_STDPERIPH_DRIVER,STM32F10X_HD,否则会出现报警,注意两个宏之间有一个逗号英文

添加头文件的路径

将三个路径添加进来

点击保存,退出魔术棒

8、处理main.c文件

双击打开main.c文件,删除里面的所有内容,输入程序

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

编译,没有错误没有警告,则模板创建成功。如果出现报错,可参考下列解决办法1.error:固件库模板编程:关于core_cm3.c的4个错误解决方法_并不傻的袍子-CSDN博客

猜你喜欢

转载自blog.csdn.net/qq_40836442/article/details/109543551
今日推荐