完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
为了方便移植和开发,减少很多不必要的麻烦,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 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.5LibrariesCMSISCM3CoreSupport下的core_cm3.h和core_cm3.c是内核文件,不需要改变 STM32最新固件库v3.5LibrariesCMSISCM3DeviceSupportSTSTM32F10x存放着系统初始化的一些文件,不需要动,其中的startup文件夹包含了启动文件,启动文件夹包含的几个文件夹是根据编译器区分的,Keil5编译器用的是arm文件夹中的文件 根据芯片类型选择启动文件,末尾的hd表示高容量,md中等容量,ld低容量。可以百度查找使用芯片是什么容量的。 STM32最新固件库v3.5LibrariesCMSISCM3DeviceSupportSTSTM32F10x下的stm32f10x.h头文件相当于单片机中的c51.h头文件,很重要,里面定义了stm32的总线、内存、寄存器、时钟、中断等 STM32最新固件库v3.5LibrariesCMSISCM3DeviceSupportSTSTM32F10x下的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.5LibrariesCMSISCM3CoreSupport目录下的两个文件复制 启动文件复制,把固件库:STM32最新固件库v3.5LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm目录下的startup_stm32f10x_hd.s文件复制 把固件库中:STM32最新固件库v3.5LibrariesCMSISCM3DeviceSupportSTSTM32F10x目录下的两个文件复制 3、头文件和源文件 在固件库文件夹中将:STM32最新固件库v3.5Libraries目录下的STM32F10x_StdPeriph_Driver文件夹复制到自己创建的目录Libraries下 4、User文件夹 在固件库中将:STM32最新固件库v3.5ProjectSTM32F10x_StdPeriph_Template下的五个文件复制到自己的User目录下 将固件库目录下:STM32最新固件库v3.5LibrariesCMSISCM3DeviceSupportSTSTM32F10x下的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) { }} |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1606 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1538 浏览 1 评论
969 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
681 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1584 浏览 2 评论
1861浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
643浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
528浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
503浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 07:47 , Processed in 0.603765 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号