stm32之中断

1、中断

一般无特别说明,异常就是中断,中断就是异常。
中断类型

  • 系统异常,体现在内核水平

  • 外部中断,体现在外设水平

2、NVIC简介

  • NVIC:嵌套向量中断控制器,属于内核外设,管理着包括内核和片上所有外设的中断相关的功能。
  • 两个重要的库文件:core_cm3.h和misc.h

NVIC寄存器简介,core_cm3.h定义
在这里插入图片描述
数组成员很多,一般用不到用不完。内核10个,外设60个中断,一共70个。数组预留几百个,哈哈。
PS:最常用的是中断优先级寄存器。

3、中断编程

NVIC_InitTypeDef

函数解释
NVIC_IRQChannel中断源
NVIC_IRQChannelPreemptionPriority抢占优先级
NVIC_IRQChannelSubPriority子优先级
NVIC_IRQChannelCmd使能或者失能

中断优先级的定义
优先级设定:NVIC->IPRx
在这里插入图片描述
优先级分组:SCB->AIRCR:PRIGROUP[10:8]

在这里插入图片描述
中断编程顺序

  • 1-使能中断请求
  • 2-配置中断优先级分组
  • 3-配置NVIC寄存器,初始化NVIC InitTypeDef;
  • 4-编写中断服务函数

EXTI初始化结构体

EXTI_Init TypeDef
1-EXTI_Line:用于产生中断/事件线
2-EXTI_Mode:EXTI模式(中断/事件)
3-EXTI_Trigger:触发(上/下/上下)
4-EXTL_LineCmd:使能或者失能(IMR/EMR

编程要点

1-初始化要连接到EXTI的GPIO

2-初始化EXTI用于产生中断/事件(9.2.2选择输入线 需要配置外部中断配置寄存器1(AFIO_EXTICR1))

3-初始化NVIC,用于处理中断

4-编写中断服务函数

5-main函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tony带水!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值