STM32库函数⽂件结构说明整理
最近深感⾃⼰学习STM32过于短浅,趁着有时间补充了⼀些STM32的基本知识,⽤博客记录⼀下,话不多说进⼊正题。
本⽂可⽤于刚开始学习STM32的同学更好地进⾏STM32开发。
所⽤硬件:正点原⼦STM32F1精英版(芯⽚型号:STM32F103ZET6)
常见问题解答:
1.正点原⼦⾥标准例程分为寄存器,库函数和HAL库,这些都是什么区别?
解答:
寄存器的例程中就是直接对硬件的寄存器进⾏操作,类似51的开发。举个例⼦:
RCC->APB2ENR|=1<<3;
system的头文件
RCC->APB2ENR|=1<<6;
GPIOB->CRL&=0XFF0FFFFF;
GPIOB->CRL|=0X00300000;
GPIOB->ODR|=1<<5;
库函数的例程则是有许多⼤神们将这些对寄存器的操作进⾏了封装,封装成了⼀些库函数,不需要对底层的寄存器有过多的了解就能够进⾏程序的编写。
HAL库。。。。实际开发中还没⽤过,以后⽤了我再更。
很多同学⼀上来打开例程中的库函数版本,看到⾥⾯那么多⽂件可能都懵了(我当初就这样),所以今天对库函数中的⽂件结构进⾏⼤概的说明。
————————————————正⽂分割线
以正点原⼦库函数例程中的定时器中断为例:
-Timer
-USER      ----------需要⾃⼰编程的地⽅,⽐如main()等
-HARDWARE  ----------硬件的相关代码,⽐如定义LED1的初始化LED_init()
-SYSTEM    ----------系统⽂件,⽐如系统的定时器
-CORE      ----------控制器STM32的接⼝相关
-FWLiB      ----------固件库函数相关
-README    ----------使⽤的⼀些相关资料说明,版权等等,和Github⾥有点像
-USER
-main.c            -------⽤户主函数,不多说
-stm32f10x_it.c    -------编写中断服务函数,个⼈感觉意义不⼤
-system_stm32f10x.c -------设置系统以及总线时钟,有⼀个⽐较重要的函数SystemInit(),在系统启动时会调⽤,⽤于设置系统的时钟系统
-HARDWARE
-led.c  --------LED IO初始化,定义哪⼀个LED⼯作
-key.c  --------按键初始化
-timer.c --------定时器初始化,具体使⽤哪⼀个定时器
-SYSTEM
-delay.c -------实现系统的延时功能
-sys.c  -------sys.h⾥定义了STM32的IO⼝输⼊读取宏定义和输出宏定义,sys.c只定义了⼀个中断分组,主要是通过头⽂件进⾏IO⼝的位操作,⽐如PAout(6) =1这种形式
-usart.c -------进⾏串⼝的初始化和中断接收
-CORE
-core_cm3.c              -----提供进⾏M3内核接⼝,由ARM公司提供,不需要进⾏修改。
-startup_stm32f10x_hd.s  -----芯⽚启动⽂件,适⽤于⼤容量(FLASH>256K)产品
-FWLib
-misc.c              -----中断分组的相关固件库函数
-stm32f10x_gpio.c    -----gpio的相关固件库函数
-stm32f10x_rcc.c    -----复位和时钟控制器相关函数
-stm32f10x_tim.c    -----定时器相关固件库函数
-stm32f10x_usart.c  -----串⼝的相关固件库函数
-README
-README.TXT          -----程序的相关说明以及版权介绍

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。