STM32-中断

中断:打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行。

中断的作用:

1,实时控制

2,故障处理

3,数据传输

中断的意义:

高效处理紧急程序,不会一直占用CPU资源

STM32GPIO外部中断简图:

GPIO (上拉输入,下拉输入,浮空输入) ——>AFIO(F1)——>EXTI(屏蔽,上升/下降沿)——>NVIC(使能,优先级控制)——>CPU

NVIC:Interrupt Request 中断请求(IRQ) 

 1,嵌套向量中断控制器,属于内核。

  2,NVIC 内核中断(10)外部中断(60)中断优先级(16)

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

STM32-中断优先级:

1,抢占优先级:高抢占优先级可以打断正在执行的底抢占优先级中断

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

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

4,数值越小优先级越高

注:一个工程中,一般只设置一次中断优先分组。

NVIC的使用:

1,设置中断分组:HAL_NVIC_SetPriorityGrouping

2,  设置中断优先级:HAL_NVIC_SetPriority

3,使能中断:HAL_NVIC_EnableIRQ

EXTI基本概念:

外部(扩展)中断事件控制器。

每条EXTI先都可以单独配置:选择类型,触发方式,支持软件触发。

EXTI工作原理:

1,边沿检测

2,软件触发

3,中断屏蔽/清除

4,事件屏蔽

中断的使用:

GPIO (上拉输入,下拉输入,浮空输入) ——>AFIO(F1)——>EXTI(屏蔽,上升/下降沿)——>NVIC(使能,优先级控制)——>CPU

1,使能GPIO时钟     __HAL_RCC_GPIOx_CLK_ENABLE

2,HAL_GPIO_Init   

3,设置中断分组         HAL_NVIC_SetPriorityGrouping

4,设置中断优先级  HAL_NVIC_SetPriority

5,使能中断:HAL_NVIC_EnableIRQ、

6,设计中断服务函数  EXTIx_IRQHandler

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值