完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用过stm32f10x有一段时间了,但是对其库文件一直没有一个清晰的了解,上午心血来潮,就想整理一下。
首先什么是stm32库,库在c51单片机中应该是看不到,因为c51单片机都是直接操作寄存器来控制芯片,比如中断,定时器,GPIO等等,配置的时候,需要一遍又一遍的看数据手册,查看寄存器表,看看需要配置寄存器的哪些位,是配置0还是1。51单片机资源少,直接配置寄存器所以看起来并不是那么麻烦,但是stm32f10x的资源相比普通51单片机多较多,直接配置寄存器会变得很繁琐。这时候就出现了库。 库是架设(位于)在寄存器和用户驱动程序之间的代码,向上给用户提供配置底层寄存器的接口,向下得到用户的配置信息后,对底层寄存器进行配置。因为库的存在,用户不需要直接按位配置底层寄存器了,只需配置库提供的函数接口,对寄存器的操作,交给库函数来完成。 STM32的3.5版库可以直接从官网获得,进入库目录STM32F10x_StdPeriph_Lib_V3.5.0,其中有Libraries文件夹,里面包含驱动库的源码和启动文件;其他比如Project文件夹中是一些例程;还有HTML文档,是库帮助文档,主要是告诉用户如何使用驱动库来编写自己的应用程序。 双击打开Libraries文件夹,可以看到里面有俩个文件夹,CMSIS和STM32F10x_StdPeriph_Driver.先来说说什么是CMSIS,考虑一下,应该是个简写,其全称是cortex microcontroller software interface standard,是ARM与芯片厂商建立的一种标准,CMSIS标准中包含内核函数层和设备外设访问层,内核函数层包含内核寄存器的名称、地址定义,主要有ARM公司提供;设备外设访问层,提供了核外外设或者片上外设的地址和中断定义,主要有芯片厂商提供。 先说说CMSIS文件夹,CMSIS->CM3,可以看到CoreSupport和DeviceSupport俩个文件,俩个文件分别指的是内核函数层和核外外设访问层。点开CoreSupport文件夹可以看到core_cm3.h和core_cm3.h文件,core_cm3.c文件包含进入M3内核的接口,内核寄存器等等,core_cm3.c和启动文件一样,有ARM公司提供,都是底层文件。 进入DeviceSupport->ST->STM32F10x文件夹,可以看到:包含stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h文件以及startup文件夹。先谈谈startup文件夹吧,里面是一系列的系统启动文件,都是由会变语言编写的,启动文件的是处理器上电复位后最先运行的一段汇编程序,其作用是初始化堆栈指针SP、初始化程序计数器PC、设置堆、栈的大小、设置异常向量的入口地址,配置外部的SRAM,设置C库的入口分支为_main.所以启动文件作用很重要。 此外,stm32f10x.h文件是一个非常底层的文件,它的作用是定义了寄存器的地址和使用的结构体封装,处理器厂商都会对内存的操作封装成一个宏,即我们所说的寄存器,这些都是定义在stm32f10x.h文件中。system_stm32f10x.c是由st公司提供的,该文件的功能是设置系统的时钟和总线时钟,system_stm32f10x.h是systsm_sym32f10x.c的头文件,system_stm32f10x.c会用到锁相环(PLL,因为这个文件就是配置时钟嘛),所以必然要用到寄存器,所以需要包括stm32f10x.h文件。 最后说说STM32F10x_StdPeriph_Driver文件夹,这里是设备外设部分函数库,里面的src文件夹是是设备外设的驱动程序,inc是对应的头文件。用到什么设备外设,就添加相应的设备外设文件进去。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:30 , Processed in 1.273639 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号