STM32F407系列HAL库开发之初识HAL库(一)

本文介绍了CMSIS标准,特别是其核心层,包括内核函数层和设备外设访问层。详细讲解了STM32F4xx芯片的库文件结构,如system_stm32f4xx.c、startup_stm32F407xx.s等,以及它们在芯片初始化和中断处理中的作用。强调了库文件在实际项目中的使用和自定义需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. CMSIS标准:所谓的CMSIS标准,就是创建了一个软件抽象层,如下图所示

 CMSIS标准中最主要的是CMSIS核心层,主要包括:

  1. 内核函数层:其中包含用于访问内核寄存器的名称、地址定义,主要由 ARM 公司提供
  2. 设备外设访问层:提供了片上的核外外设的地址和中断定义,主要由芯片生产商提供

二.库目录、文件简介:

       打开工程文件夹,我们会发现有许多英文命名的文件夹,接下来介绍一下各个文件夹里放的都是啥。

  • system_stm32f4xx.c文件 :包含了 STM32 芯片上电后初始化系统时钟、扩展外部存储器用的函数 STM32F407 系列的芯片,调用库的这个 SystemInit 函数后,系统时钟被 初始化 168MHz。
  • 启动文件startup_stm32F407xx.s包含了对应编译平台的汇编启动文件,在实际使用时要根据编译平台来选择。
  • stm32F407xx.h 文件 包含了 STM32 中所有的外设寄存器地址和结构体类型定义。
  • src文件夹:包括 stm32f4xx_hal_XXXXXX.c文件。
  • inc 文件夹:包括 stm32f4xx_hal_XXXXXX.h文件。
  • stm32f4xx_it.c :编写中断服务函数的.c文件,在该 文件中已经定义了一些系统异常 ( 特殊中断 ) 的接口,而其它普通中断服务函数由我们自己添加。
  • stm32f4xx_hal_conf.h 文件: 此文件根据芯片型号增减 ST 库的 外设文件 , 另外也可以进行时钟源配置。

    三.各个库文件之间的关系:

    在实际的使用库开发工程的过程中,我们把位于 CMSIS 层的文件包含进工程,除了特殊
    系统时钟需要修改 system_stm32f4xx.c ,其它文件丝毫不用修改,也 不建议修改 。对于位于用户层的几个文件,就是我们在使用库的时候,针对不同的应用对库文件进行增删。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值