【百问网智能家居---基于单片机最小系统STM32F103C8T6_MINI的入门学习】

这篇博客介绍了基于STM32单片机的中断系统,包括中断列表、优先级管理和GPIO中断。通过实验详细讲解如何使用STM32CubeMX配置GPIO中断,设置NVIC,并实现按键中断程序,达到控制LED灯的目的。文章适合初学者,旨在帮助理解STM32中断机制和实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人工作之余自学,该博客是为了记录学习过程,以及一些心得。内容如有出错,欢迎大家纠正,谢谢。

中断系统

1、 把CPU内部产生的紧急事件叫做异常,比如非法指令(除零)、地址访问越界等;
2、 把来自CPU外部的片上外设产生的紧急事件叫做中断,比如GPIO引脚电平变化、定时器溢出等。
3、 异常和中断的效果基本一致,都是暂停当前任务,优先执行紧急事件,因此一般将中断和异常统称为中断。
在这里插入图片描述

实例一:查看中断列表

实例一:打开任意一个项目的中断文件Startup,里面的中断向量标,可以看到所使用的芯片,可以支持的中断。中断向量表定义了所有中断处理函数的名字,当外设发生中断时,则跳到中断向量表中,对应中断处理函数的位置。

优先级

Cortex-M3内核有一个专门管理中断的外设NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器),通过优先级控制中断的嵌套和调度。NVIC是一个总的中断控制器,无论是来在内核的异常还是外设的外部中断,都由NVIC统一进行管理。优先级是负数表示不可以设置优先级,剩下的异常和中断都可以通过修改NVIC的寄存器调整优先级,但不能设置为负数。优先级数值越小,优先级越高。
在这里插入图片描述
1、 将优先级拆分为抢占优先级( Preempt Priority) 和子优先级( Subpriority);
2、 每个中断都需要指定这两级, 具有高优先级的中断可以打断低优先级的中断,实现中断嵌套。
在这里插入图片描述
3、 抢占优先级决定是否可以产生中断嵌套,子优先级决定中断响应的顺序。
4、 两个中断的抢占优先级相同,这两个中断不能产生嵌套。尽管子优先级比较高,也要等执行完。

GPIO中断

1、 GPIO产生的中断,要先由外部中断事件控制器处理一下。因为STM32的GPIO支持中断模式和事件模式。
2、 中断模式是指外部信号产生电平变化时,EXTI将该信号给NVIC处理, 从而触发中断,执行中断服务函数,完成对应操作。
3、 事件模式,是指外部信号产生电平变化时,EXTI根据配置,联动ADC或TIM执行相关操作。
4、 中断和事件的产生源是一样的,中断需要软件实现相应功能,而事件是由硬件触发后执行相应操作。前者需要CPU参与功能实现,可以自定义功能,比如产生中断按键控制LED灯的亮灭,后者无需CPU参与,比如发生按键中断,自动启动ADC采集,具有更高的响应速度。
在这里插入图片描述
STM32C8T6只有40多个中断,除去串口、ADC、I2C、SPI等,剩下不到20个中断。但芯片的GPIO引脚有30多个,导致不能一个引脚分配一个中断,所有产生中断线。即同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cara-xl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值