一:stm32外部中断概述

1:stm32的外部中断线


STM32的每个IO都可以作为外部中断输入。
STM32的中断控制器支持19个外部中断/事件请求:
线0~15:对应外部IO口的输入中断。

线16:连接到PVD输出。

线17:连接到RTC闹钟事件。

线18:连接到USB唤醒事件。

每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。

2:外部中断线与io引脚对应关系

3:外部中断向量

在STM32中,中断向量表是一个重要的概念,它描述了当中断发生时,程序应该如何跳转到相应的中断处理函数。STM32的中断向量表是在启动文件(通常是startup_stm32.s)中定义的,并且是固化在MCU的内部ROM中的。

在STM32中,中断向量表通常如下所示:

  • 复位向量(Reset Vector): 指向复位中断处理函数的起始地址。

  • 未定义指令中断向量: 指向未定义指令中断处理函数的起始地址。

  • 系统异常中断向量: 指向系统异常中断处理函数(如Prefetch Abort、Data Abort)的起始地址。

  • 中断向量表: 每个中断源对应一个中断向量,指向该中断源的中断处理函数的起始地址。

  • NVIC中断向量表: 如果使用了Nested Vectored Interrupt Controller (NVIC),则会有额外的中断向量用于处理NVIC相关的中断。

二:流程分析

        实验目的 :按下按键一次将led灯电平翻转完成亮灭控制        

        实现流程:·创建工程 -> 配置led引脚 ->配置按键引脚 ->配置中断->生成工程->完成代码编写

第一步:

三:工程创建

        1: 打开stm32cubemx

         2:选择芯片型号

                

         3: 配置调试接口

      

        4:选择led灯对应引脚

因为用的板子是飞线的方式来连接led所以可以随意选择io口,如果用的是成品板就要看板子上的led灯连接的是哪个io口进行相应的配置

                

 

        5:选择按键对应引脚

        

 

 

 

6:创建工程 

 

四:代码实践

        1:打开工程

        2:找到gpio相关库函数里面的中断回调函数复制原型到main函数

        3:编写触发中断要产生的现象:翻转led灯引脚电平

        4:主函数不需要进行操作 直接编译  点击两个其中一个都可以

        5:烧入代码

选择isp 或者 仿真器下载

 

        6:实验现象

                烧入代码后程序默认led灯点亮

                

点击按键触发中断后led灯熄灭

 

 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部