STM32库函数文件结构说明整理

最近深感自己学习STM32过于短浅,趁着有时间补充了一些STM32的基本知识,用博客记录一下,话不多说进入正题。
本文可用于刚开始学习STM32的同学更好地进行STM32开发。
所用硬件:正点原子STM32F1精英版(芯片型号:STM32F103ZET6)
常见问题解答:
1.正点原子里标准例程分为寄存器,库函数和HAL库,这些都是什么区别?
解答:

寄存器的例程中就是直接对硬件的寄存器进行操作,类似51的开发。举个例子:
RCC->APB2ENR|=1<<3;
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          -----程序的相关说明以及版权介绍
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值