STM32

本文详细介绍了STM32的外部中断配置,包括中断分类、触发方式、寄存器组以及配置步骤。STM32有19个外部中断线,支持边沿触发,不支持电平触发。EXTICR寄存器组用于配置IO口与中断线的映射。配置中断涉及初始化IO口、设置中断线映射、开启中断和事件、配置中断分组以及编写中断服务函数。文中还提供了中断初始化的代码示例。
摘要由CSDN通过智能技术生成

中断分类                                                                

                                                                        

STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发和屏蔽设置。

 

STM32的19个外部中断对应着19路中断线,分别是EXTI_Line0-EXTI_Line18:线0~15:对应外部 IO口的输入中断。

 

线16:连接到 PVD 输出。

 

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

 

线18:连接到 USB 唤醒事件。 触发方式:STM32 的外部中断是通过边沿来触发的,不支持电平触发。

外部中断分组:STM32 的每一个GPIO都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。

               

寄存器组                                                                                                                                        

EXTICR寄存器组,总共有4

个,因为编译器的寄存器组都是从0 开始编号的,所以EXTICR[0]~ EXTICR[3],对应《STM32参考手册》里的

EXTICR1~ EXTICR 4(查了好久才搞明白这个数组的含义!!)。每个

EXTICR只用了其低16 位。

EXTICR[0]

~EXTICR[3]的分配如下:EXTI寄存器的结构体:

 

typedef struct

{

  vu32 IMR;

  vu32 EMR;

  vu32 RTSR;

  vu32 FTSR;

  vu32 SWIER;

  vu32 PR;

} EXTI_TypeDef;

 

 

       IMR:中断屏蔽寄存器

 

这是一个 32 寄存器。但是只有前 19 位有效。当位 x 设置为1 时,则开启这个线上的中断,否则关闭该线上的中断。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值