STM32定时中断

STM32定时中断

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


STM32定时中断


前言

在这里,我们一起学习STM32基础知识


一、STM32中断系统简介

  1. 中断:在主程序运行的过程中,出现了某些中断源或者特定触发中断的条件,CPU在此时会放下手里面正在处理的主程序,转过头来处理中断的程序,处理完成后在主程序暂停的位置继续向后处理。
  2. 中断优先级:多个中断源同时申请中断时,CPU会根据中断源的轻重缓急来裁决处理,优先处理更加紧急的中断源。(类似于急诊医生会根据几个同时挂号病人的病情排出严重程度,先给病情最重的病人看病)。
  3. 中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU会暂时放下当前处理的中断程序,转而去处理优先级更高的中断程序,之后再依次完成暂停之前的工作。
  4. STM32共有68个可屏蔽中断通道,包括EXTI, TIM, ADC, USART, SPI, I2C, RTC 等多个外设,使用NVIC统一管理中断,每个中断通道都有16个可编程的优先级,可以对优先级进行分组,进一步设置抢占优先级与响应优先级。(中断通道根据抢占优先级和响应优先级的大小排队,等待CPU依次处理)。
    NVIC基本结构
    5.NVIC的中断由优先级寄存器的4位决定,这4位可以再进行细分,分为高n位的抢占优先级和低4-n位的响应优先级。其中抢占优先级位数越小优先级越高,优先中断嵌套。响应优先级位数越大优先级越高,优先进行排队。
    NVIC分组方式

二、EXTI简介

2.1 EXTI------Extern Interrupt: 外部中断
EXTI可以监测GPIO口的电平信号,当指定的GPIO口产生电平变化时(换句话说,GPIO的电平变化是触发中断的中断源,GPIO一般连接外设,当EXTI监测到连接外设的GPIO状态变化时,可以进入中断对外设进行一些操作),EXTI将立即向NVIC发出中断申请,经过NVIC裁决后既可中断CPU主程序,使CPU执行EXTI对应的中断程序。

2.2 支持的触发方式:
上升沿/下降沿/双边沿/软件触发

2.3 支持的GPIO口:所有的GPIO口,但相同的Pin不能同时触发中断(比如PA0和PB0)

2.4 通道数:20
16个GPIO_Pin; PVD输入; RTC闹钟, USB唤醒; 以太网唤醒。

2.5 触发的相应方式:中断响应, 事件响应

2.6 EXTI基本结构

EXTI基本结构
在开启外部中断之前需要使能AFIO
AFIO主要用于引脚复用功能的选择和重定义,在STM32中,AFIO主要为完成两个任务,分别是复用功能引脚重映射和中断引脚的使能
外部中断/事件中断
2.7 外部中断编程流程
①初始化IO口为输入。
GPIO_Init();
② 开启IO口复用时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
②设置IO口与中断线的映射关系。
void GPIO_EXTILineConfig();
③初始化线上中断,设置触发条件等。
EXTI_Init();
④配置中断分组(NVIC),并使能中断。
NVIC_Init();
⑤编写中断服务函数。
EXTIx_IRQHandler();
⑥清除中断标志位
EXTI_ClearITPendingBit();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值