中断(STM32F103)

中断的作用:实时控制,故障处理,数据传输

NVIC(嵌套向量中断控制器):

256个中断  16内核+240外部(F103有60个外部)

中断使能寄存器(ISER):32位;8个

中断除能寄存器(ICER):32位;8个

应用程序中断及复位控制寄存器(AIRCR):32位;1个

中断优先级寄存器(IPR):8位;240个

1.设置分组:AIRCR[10:8], HAL_NVIC_SetPriorityGrouping

2.设置中断优先级:IPRx bit[7:4], HAL_NVIC_SetPriority

3.使能中断:ISERx, HAL_NVIC_EnableIRQ

中断和事件的理解:

中断:要进入NVIC,有相应的中断服务函数,需要CPU处理

事件:不进入NVIC,仅用于内部硬件自动控制,如:TIM,DMA,ADC

EXTI:外部(扩展)中断事件控制器,包含20个产生事件/中断的边沿检测器

每条EXTI线可以单独配置

1.边沿检测

2.软件触发

3.中断屏蔽/清除

4.事件屏蔽

上升沿触发选择寄存器(EXTI_RTSR1)

下降沿触发选择寄存器(EXTI_FTSR1)

中断屏蔽寄存器(EXTI_CPUIMR1)

挂起寄存器(EXTI_CPUPR1)

EXTI和IO映射关系

AFIO:复用功能IO,主要用于重映射和外部中断映射配置

1.调试IO配置      AFIO_MAPR[26:24],部分外设IO重映射配置

2.重映射配置      AFIO_MAPR,部分外设IO重映射配置

3.外部中断配置    AFIO_EXTICR1~4,配置EXTI中断线0~15对应到IO口

4.注意:使用AFIO寄存器之前要使能AFIO时钟,  _HAL_RCC_AFIO_CLK_ENABLE();

中断向量表:定义一块固定的内存,以4字节对齐,存放各个中断服务函数程序的首地址

STM32中断优先级基本概念:

1.抢占优先级:高抢占优先级可以打断正在执行的低抢占优先级

2.响应优先级:当抢占优先级相同时,响应优先级高的先执行,但是不能相互打断

3.抢占和响应优先级都相同的情况下,自然优先级越高的,先执行

4.自然优先级:中断向量表的优先级

5.数值越小,优先级越高

如何使用中断:

1.设置输入模式——使能GPIO时钟(_HAL_RCC_GPIOx_CLK_ENABLE)

2.设置GPIO输入模式(HAL_GPIO_Init)

3.使能AFIO或SYSCFG时钟

4.设置EXTI和IO映射关系

5.设置EXTI屏蔽,上下沿

6.设置中断分组,优先级,使能——NVIC(HAL_NVIC_SetPriorityGrouping,只需设置一次)(HAL_NVIC_SetPriority)(HAL_NVIC_EnableIRQ)

按优先级顺序,依次处理中断——CPU

设计中断服务函数(EXTIx_IRQHandler,中断服务函数,清中断标志)

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值