1、解压在官网下载的库文件,文件夹内容详解如下图所示




2、下面逐个文件夹分析一下,首先打开“Libraries”文件夹,“CMSIS”文件夹中

   是一些Cortex-M3内核文件及一些启动文件这里我们先不理会它,一会建立工程

   的时候我们添加他们就可以

  “STM32F10x_StdPeriph_Driver”文件夹中是一些库源码,我们来分析一下其中

    的内容,如下图




3、我们返回到库文件的根目录,在来看一下“Project”文件夹,打开该文件夹,如

   下图





4、我们打开工程模板文件夹“STM32F10x_StdPeriph_Template”,来分析一下在我

   们建立工程的时候都需要做些什么。





文件夹EWARM,HiTOP,RIDE,TrueSTUDIO用于不同开发环境使用,详情查询各文件夹下的文件readme.txt。


上面我们只对库文件做一个简单的介绍,具体的大家可以百度或者参考ST官网的一些说明加上库文件的帮助文件来具体了解一下。


下面我们来利用库文件来建立一个属于我们自己的模板项目



1、首先我们建立一个模板文件夹,在此文件夹中新建3个文件夹,分别为Doc、

   Output、Project,再将库文件中的Libraries文件夹复制到该目录下。





2、在模板文件夹中新建一个文本文档,在文档中输入如下内容,并更改文件名称为

  “删除MDK产生的过程文件.bat”(一定要将扩展名更改为.bat)

   (此部分代码是从神舟开发板文件中摘录过来的,非原创)


del *.bak /s 
::/S 处理当前文件夹及其子文件夹中的匹配文件。 
del *.ddk /s
del *.edk /s
del *.lst /s
del *.lnp /s
del *.mpf /s
del *.mpj /s
del *.obj /s
del *.omf /s
::del *.opt /s  ::不允许删除JLINK的设置
del *.plg /s
del *.rpt /s
del *.tmp /s
del *.__i /s
del *.crf /s
del *.o /s
del *.d /s
::del *.axf /s
::del *.hex /s
::del *.bin /s
del *.tra /s
del *.dep /s           
del JLinkLog.txt /s


del *.iex /s
del *.htm /s
del *.sct /s
del *.map /s
 
exit




3、将库函数STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

   目录下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h这4个文件复制

   到“模板\Project”文件夹中。




4、打开UVision4,在“模板\Project”文件夹下新建一个工程,取名叫Demo。

  (如果是第一次使用的话会打开一个自带的工程文件,我们可以通过工具栏

   Project->Close Project 选项把它关掉)




5、选择芯片类型,这里我们以STM32F103ZET6为例






6、选择好芯片之后,点击OK,系统会弹出提示询问是否添加启动文件,为了保持库

   的完整性,我们就不需要开发环境为我们自带的启动代码了,这里我们点否




7、接下来我们为工程添加必要的文件,在UVision4的项目管理器中,右键单击

   Target 1,选择“管理组件”


8、在组件窗口中,双击最左侧Target 1,更改名称为Demo,在Groups中删除原有

   组,新建User、StdPeriph_Driver、CMSIS、MDK-ARM、Doc这几个组。






9、下面我们向组中添加文件,点击选中User,在最后面一栏Files栏下方点击添加文件,添加文

   件路径如下

模板\Project文件夹下的:main.c、stm32f10x_it.c

main.c:用户主函数

stm32f10x_it.c:中断服务函数





10、点击选中StdPeriph_Driver,点击添加文件,添加文件路径如下

模板\Libraries\STM32F10x_StdPeriph_Driver\src中的所有文件

这些文件是ST标准外设驱动函数





11、点击选中CMSIS,点击添加文件,添加文件路径如下

模板\Libraries\CMSIS\CM3\CoreSupport文件夹中的core_cm3.c

模板\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹中的system_stm32f10x.c

core_cm3.c:Cortex-M3内核及其设备文件

─ 访问Cortex-M3内核及其设备:NVIC,SysTick等

─ 访问Cortex-M3的CPU寄存器和内核外设的函数


system_stm32f10x.c:微控制器专用系统文件

─ 函数SystemInit,用来初始化微控制器

─ 函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm32f10x_xx.s /.c,在跳转到main前调用

─SystemFrequncy,该值代表系统时钟频率












12、点击选中MDK-ARM,点击添加文件,添加文件路径如下

模板\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件夹中startup_stm32f10x_hd.s

这些文件都是一些系统启动文件

startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s 小容量的STM32F100xx
startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s 中容量的STM32F100xx
startup_stm32f10x_xl.s FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx






至此,文件添加完毕了,下面我们来解释一下,具体这些文件的作用


最后我们需要对MDK环境进行一下设置


1、点击MDK环境中的目标选项按钮




2、我们首先选择输出文件的文件夹,我们选择Output文件夹,再填写你要输出的文

   件命名,最后勾选产生exe文件







3、点击C/C++选项卡,在Define 里面输入添加USE_STDPERIPH_DRIVER, 

   STM32F10X_HD。添加USE_STDPERIPH_DRIVER 是为了屏蔽编译器的

   默认搜索路径,转而使用我们添加到工程中的ST的库,添加STM32F10X_HD 

   是因为我们用的芯片是大容量的,添加了STM32F10X_HD 这个宏之后,

   库文件里面为大容量定义的寄存器我们就可以用了。芯片是小或中容

   量的时候宏要换成STM32F10X_LD或者STM32F10X_MD。其实不管是什么

   容量的,我们只要添加上STM32F10X_HD 这个宏即可,当你用小或者中

   容量的芯片时,那些为大容量定义的寄存器我不去访问就是了,反正也

   访问不了。





4、在“包含文件路径”栏点击,在这里添加库文件的搜索路径,这样就可以屏蔽掉

   默认的搜索路径。






添加路径为:


模板\Project

模板\Libraries\CMSIS\CM3\CoreSupport

模板\Libraries\STM32F10x_StdPeriph_Driver\inc

模板\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x


至此,我们的模板工程就建立完毕!


关键字:STM32  官方库文件 引用地址:STM32官方库文件分析及使用

上一篇:STM32库文件结构及CMSIS介绍
下一篇:STM32学习笔记之USB库文件分析

推荐阅读

1. STM32的调试方式选择STM32支持JTAG和SWD两种调试方式,且默认状态下这两种调试功能都是开启的。由此我们可以知道:如果要使用JTAG调试功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;而如果我们关闭JTAG功能,但是开启SWD调试功能,那么PB3,PB4,PA15都可以当作普通IO来使用了;ST官方3.5的库有提供关闭调试功能的两个接口:1.1 关闭所有的JTAG和...
日前,在Mentor 2019北京开发者论坛上,Mentor公司中国区副总经理刘岩介绍了一年来Mentor的所有进展情况。根据最近的客户调查显示,客户普遍反应西门子可以给EDA行业带来更广阔的机遇。刘岩介绍道,在西门子并购Mentor伊始,就承诺对EDA的发展进行不遗余力的支持。比如近年来收购的电磁仿真软件供应商Infolytica、前传网络测试供应商Sarokal、特征提取软...
上周,高通宣布了骁龙4系处理器,将为入门手机带来5G芯片方案支持。  来自韩媒的报道称,知情人士透露,骁龙4系5G芯片将由三星参与代工,搭载上述芯片的产品将于明年陆续登场。遗憾的是,具体制程节点不详,从定位来看,猜测8nm可能性较高。  按照高通的说法,小米、OPPO、摩托罗拉等品牌将首批采纳该处理器,小米可能会借此机会推出旗下最...
行业主要上市公司:宁德时代(300750)、比亚迪(002594)、国轩高科(002074)、亿纬锂能(300014)、孚能科技(688567)、欣旺达(300207)等本文核心数据:LG化学和三星SDI专利申请数量、专利市场价值、专利合作申请、重点专利布局全文统计口径说明:1)搜索关键词:锂电池及与之相近似或相关关键词;2)搜索范围:标题、摘要和权利说明;3)筛选条件:简单同族申请去重、法律...

史海拾趣

问答坊 | AI 解惑

傻孩子新书无水印无加密版

傻孩子新书无水印无加密版部分章节,看了好的朋友可以再决定是否买书 [ 本帖最后由 飞雪008 于 2008-10-29 09:04 编辑 ]…

查看全部问答∨

【有偿求助】PCI数据采集卡的应用软件

【有偿求做】PCI数据采集卡的应用软件 我采用的是凌华AD—9812型号PCI数据采集卡,要求采集高速超声波信号(约10M/s),采用DMA方式,本人提供版子的动态链接库,只是做一个应用软件就可,最好能够动态显示(比如用labview开发)用其它VB VC MATLA ...…

查看全部问答∨

基于LabVIEW的柴油机供油系故障诊断系统开发

基于LabVIEW的柴油机供油系故障诊断系统开发…

查看全部问答∨

调查:为何电子工程师不爱Twitter?

俗称“推特”(编按:非官方中文翻译)的微网志平台 Twitter ,是当前广受欢迎的社交网络工具之一;但该平台号称一天超过5,000万则的“推文(Tweet)”,发文者与接收者是电子工程师的却不多,主要是因为他们还没能接受这种限制讯息长度的微网志平台。 ...…

查看全部问答∨

杭州 BSP、应用工程师招聘

WINCE,LINUX什么都可以。只要有驱动开发经验、应用开发经验都可以,如果外语佳的更好。 本科生刚毕业大约税后有5000吧;本科生3年税后7000吧;本科生工作6年税后1万左右吧。 我的QQ:674694784 也可以和我沟通技术问题,谢谢。…

查看全部问答∨

CFileDialog::OnLBSelChangedNotify()怎么用?

我想当用户在文件列表中移动光标时,获得当前选中文件的信息。 从CFileDialog派生出CMyFileDialog类,并重载了OnLBSelChangedNotify()。 试了一下,可是什么反应都没有啊。…

查看全部问答∨

evc下如何编程实现打开.txt文件

程序是这样的,做一个视图列表,里面显示某文件夹内的若干.txt文件名称,然后读出某个文件,将包括文件路径在内的文件名付给一个字符串,但现在不知道如何能实现打开这个文件,大家帮帮忙,谢谢! …

查看全部问答∨

那位大侠用过飞思卡尔的TWR K40评估板啊

最近老师给了TWR K40和TWRK 60的两套板子让研究, 跟着它的TWRK40X256QSDLAB-MQ3.6做的时候,用IAR Embedded workbench for ARM 6.21 软件刷程序时,按“download and debug”的时候软件提示内存不能为read ,接着软件就自动关闭了,板子里面本来带 ...…

查看全部问答∨

ATmega128 程序

小子我刚写好了一段程序,也在studio中调试过了,语法上基本没错,只是我一个新手,还不知道程序能否实现想要的功能,麻烦大家帮我看看,给些提示,我总感觉自己的程序存在一些问题。过几天就要用开发板调试了,谢谢大家帮我哈 我要得到的功能是 ...…

查看全部问答∨

我是 超级大菜鸟~~~

我想问问 所以的书第一章都是硬件基础知识 是不是一定要学会这些才可以继续往下学? 因为对于新手来说好像基础知识太乏味 也看不懂 看几行就走神了…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved