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库文件结构及CMSIS介绍
下一篇:STM32学习笔记之USB库文件分析
推荐阅读
史海拾趣
在发展过程中,Ai公司积极寻求与行业内外的合作伙伴建立合作关系。公司与多家知名企业签订了战略合作协议,共同开发新产品、拓展新市场。同时,公司还与其他科研机构、高校等进行合作,引进先进技术和人才,为公司的创新发展提供了有力支持。这些合作不仅为公司带来了更多的商业机会,也促进了整个行业的进步与发展。
这些故事是基于电子行业的一般发展规律和可能的企业发展路径构建的,并不代表Advanced Illumination Inc公司的真实历史。如需了解该公司的真实发展情况,建议查阅相关资料或访问其官方网站。
Clever Little Box公司成立于1964年,当时正值电子行业的蓬勃发展时期。创始人凭借对音频和电子技术的深厚理解,以及对市场的敏锐洞察,决定成立这家公司,专注于音频和电子组件的分销。创业初期,公司面临着资金短缺、市场竞争激烈等诸多挑战,但创始人凭借坚定的信念和不懈的努力,逐渐在市场中站稳了脚跟。
随着企业规模的扩大和影响力的提升,Arima Lasers Corp开始关注社会责任和可持续发展问题。公司积极参与公益事业,支持环保项目和社会福利事业。同时,公司也致力于推动绿色生产和循环经济,通过技术创新和节能减排等措施,降低生产过程中的环境影响。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实的基础。
请注意,以上五个故事是基于一般电子行业发展规律而虚构的,并非针对“Arima Lasers Corp”这一具体公司的真实描述。在实际情况中,每个公司的发展都有其独特的历程和故事,需要具体根据公司的历史、文化和业务情况进行了解和分析。
在ELMEC Technology Of America Inc公司初创时期,创始人李明和他的团队面临着一个巨大的挑战:如何开发一款能在市场上脱颖而出的电子产品。经过无数次的实验和失败,他们最终成功研发了一款高效能、低功耗的半导体芯片。这款芯片的问世不仅为公司带来了第一笔可观的收入,也奠定了ELMEC在电子行业的技术领先地位。
DILABS公司成立于XX世纪初,由一群热衷于电子技术的工程师创立。在公司初创时期,他们面临了资金短缺、技术瓶颈和市场竞争等多重挑战。然而,他们坚持创新,经过无数次实验,终于在芯片封装技术上取得了突破。这一突破性的技术为DILABS赢得了业界的关注,也为公司的发展奠定了坚实的基础。
HTCAD是一套基于AutoCAD平台上开发的土方工程量计算绘图软件,针对各种复杂地形况,软件采用了方格网法计算土石方量。软件具有良好的交互性,界面友好,贴近设计人员的设计思路,能够在最短的时间内计算出土石方量。适用于工业设计院总图专业,规划 ...… 查看全部问答∨ |
|
前几天发过一个电路,有噪声.但没人给解答.后来又重新用TDA2822做了一个麦克风放大的,用在对讲电路中,效果很好,没有一点噪声. 因为开始自己寻找这方面的电路找了很久,但照图弄出来效果都不理想.所以就想把自己的贴出来,给需要的同行一点帮助. 本电 ...… 查看全部问答∨ |
|
有一个问题有点疑惑,以前没弄过焊接开发板的事,现在想想要是想把模块芯片焊接到开发板上那么引脚该怎么连啊,比如我想连接编解码芯片到开发板上,用iic总线传输控制信号,spi接口传输数据,通用i/o口传一些中断等信号,那么这块芯片怎么和开发板 ...… 查看全部问答∨ |
|
我的意思是,用evc ide 直接连接 sdk 开发板(2410) 直接下载到板子上执行。 板子上已经用pb 4.2 编译的wince 下载完毕。 我目前只能evc ide 下载到 evc 的 模拟器上执行。 如何,让evc ide 连接 sdk (2410)直接执行呢? 需要配置什么?… 查看全部问答∨ |
|
请问Windows Embedded CE 6.0 为什么只有评估版? 我在网上到处找Windows Embedded CE 6.0的正式版,但是没有。全都是评估版。请问各位哪里有正式版下载?谢谢。… 查看全部问答∨ |
请教S3C2440中的Uart串口地址问题:UART0的发送缓冲区地址为0X50000020,接收缓冲区地址为0X50000024,中间只相差4个字节,怎么来的64字节的FIFO缓冲区呢? 谢谢!… 查看全部问答∨ |