我对stm库文件开发的简单理解.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
我对stm库文件开发的简单理解

1.用户接口文件的问题:新建的是自己需要的驱动文件,我们要实现什么模块的功能都放在.c中,用户为了完成配置什嚒的用到的配置文件都在FWLIb\src文件中,那么我们在该文件中(bsp_usanrt1.c)是如何与FWLIb\src的配置文件建立联系的呢(首先要知道与src对应的是fwlib\inc即库文件src的头文件,只要包含了该头文件就是为我们提供了实现函数的接口),那就要找头文件(包含的接口):ar在bsp_usart.h中猛一看并没有fwlib\inc中的头文件,其实头文件的预处理,即:#include”xxx”都是放在stm32f10x_conf.h中,文件中,故只要包含stm32f10x_conf.h即可,但是看bsp_usart1.h也并没有包含该文件,分析一下,1.是声明bsp_usart1.c中的实现函数(即接口函数的实现),主要是为了给主文件的main提供接口用(即用户定义的接口);3.是标准库函数接口(置于MDK的安装目录下,独立于stm32cpu内核的文件),不会是包含stm32f10x_conf.h的头文件;再看2:果然是放在2中,那么与src中各种外设实现文件建立了接口联系:即(用户定义:bsp_usart1.c—bsp_usart1.h)-stm32f10x.h—stm32f10x_conf.h(用户可配置各种外设文件的头文件,只有被配置的有文件才会被编译) 接其中bsp_usart1.h的配置要考虑完全。2:再来看一下comsis核心文件:(1)stm32f10x.h这个文件非常重要,是一个非常底层的文件。它包含了STM32中寄存器地址和结构体类型定义,也就是说:在使用stm32固件库的地方都要包含这个文件:(类似于51中的reg51.h)(2)core_cm3.c和system_stm32f10x.c均被包含在stm32f10x.h中:作用是为采用cortex_m3核设计soc的芯片商设计的芯片外设提供一个进入com3内核的接口。还包含了一些与编译器有关的信息(如realview complier(MDK的编译器,后面面依次类推),ICC complier(IAR),Gun complier):等,在编写时也要加入comsis的group中。补充:1.还有一个写中断函数的文件:我们要做的就是依据启动文件提供的接口:来编写中断服务函数的接口:在中断服务函数中实现自定义。补充:2,串口使用时:用了printf()函数的重定向,重定向是指用户可以自己重写c的库函数(printf()实际上是在标准库函数中的一个宏,最终是调用了fputc()这个函数),我们可以重写fputc()(即重定向fputc()),这样当我们再调用printf()时,因为连接器检查到用户编写了与c库函数相同的名字的函数时,优先采用用户编写的函数(即我们借此实现了对库的修改)(要调用库函数,只需在当前文件加入库函数的包含头文件即可):小结:这些只是我的一点理解,仅供参考,至于具体的开发:看相关的教程是很好的选择。记住:传承无价!

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档