STM32中断学习笔记

中断和事件

 


  1. 嵌套向量中断控制器(NVIC)
    1. 特性
      • 68个中断通道
      • 16个优先等级

         NVIC与处理器核接口直接相连,实现低延时中断处理和高效的晚到中断处理 

      2.系统滴答定时器

 


一、构架HAL固件

1、CMSIS架构

image
CMSIS核心层是CMSIS标准最重要的,包括内核函数层和设备外设访问层

  • 内核函数层:用于访问内核寄存器的名称、地址定义。ARM提供
  • 设备外设访问层:片上的核外外设的地址和中断定义。芯片厂商提供

2、库文件、目录

image

  • Drivers:官方的CMSIS库,HAL库
  • Project:针对demo板的例子和工程模板
  • Utilities:公用组件

Driver目录下的两个重要文件夹:
image

2.1 CMSIS目录

image

  • Device:具体芯片相关文件
    system_stm32f1xx.c 文件:STM32芯片上电后初始化系统时钟、扩展外部存储器用的函数
    strartup_STM32F103xx.s:为 STM32F103芯片的启动文件
    stm32F103xx.h 文件:STM32 中所有的外设寄存器地址和结构体类型定义

  • Include:内核相关文件,包进入内核的接口,定义内核相关寄存器。

    • 参考的资料:《cortex_M3_Technical Reference Manual》、《Cortex®-M3 内核编程手册 》
2.2 STM32F1xx_HAL_Driver

这里的文件属于 CMSIS 之外的的、芯片片上外设部分。

ST 公司针对每个 STM32 外设而编写的库函数文件这类外设文件统称为:stm32f1xx_hal_ppp.c 或stm32f1xx_hal_ppp.h 文 件,PPP表示外设名称。若我们开发的工程中用到了 STM32 内部的 ADC,则至少要把这两个文件包含到工程里。

工程文件

  • 必须用到其中的四个文件:core_cm3.h、core_cmFunc.h、corecmInstr.h、core_cmSimd.h
  • 添加 src 文件夹中 stm32f1xx_it.c 和 inc 文件夹中和stm32f1xx_it.h、stm32f1xx_hal_conf.h 这三个文件。
    • stm32f1xx_it.c:这个文件是专门用来编写中断服务函数
    • stm32f1xx_hal_conf.h:这个文件被包含进 stm32f103xx.h 文件。使用这个配置文件根据芯片型号增减 ST 库的外设文件,另外时钟源配置也是在这里进行设置

文件目录:STM32Cube_FW_F4_V1.19.0\Projects\STM32F103ZI-Nucleo\Templates

库函数文件关联:
image

新建工程

1、目录
image

名称 作用
Doc 用来存放程序说明的文件,由写程序的人添加
Libraries 存放的是库文件
Listing 存放编译器编译时候产生的** C/汇编/链接的列表**清单
Output 存放编译产生的调试信息、hex 文件、预览信息、封装库
Project 用来存放工程
User 用户编写的驱动文件

2、存放内容
image
image

CMSIS存放:
image

3、新建工程
存放在Project目录下的RVMDK目录下面

新建的工程添加5个组文件夹:

名称 作用
STARTUP 存放汇编的启动文件;startup_STM32F103xe.s
STM32F1xx_HAL_Driver 与 STM32 外设相关的库文件
stm32f1xx_hal.c
stm32f1xx_hal_ppp.c(ppp 代表外设名称)
USER 用户编写的文件:
main.c:main 函数文件,暂时为空
stm32f1xx_it.c跟中断有关的函数都放这个文件,暂时为空
DOC 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等
posted @ 2021-07-12 10:33  登云上人间  阅读(10)  评论(0编辑  收藏  举报