stm32之中断与外部中断

本文基于STM32F103RCT6芯片和3.5.0标准库,介绍了STM32中断系统。阐述了STM32F103使用的中断通道数量,以及中断优先级分为抢占式和响应优先级。还介绍了外部中断/事件控制器(EXTI),并提及理解中断原理后,用标准库或HAL库配置外部中断都很方便。

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

前言:
1.有51单片机开发经验会比较容易理解中断优先级;
2.本篇博文基于STM32F103RCT6芯片和3.5.0标准库编写;
3.作为自己学习的一些心得,如有不足之处,还请多多指教;

一、stm32中断系统

对于中断的基本概念这里就不介绍了,当时学51的时候,看过一篇前辈的博客,讲的不错,暂时找不到了,找到了补上。
STM32F10x采用的是M3的内核,M3的内核支持256个中断通道(其中包括16个内核中断和240个外部中断),但是在stm32芯片只使用了M3内核的部分(看过几个博客直接说的是32有256个通道,这是错误的),stm32f103只使用了86个中断通道(包括16个内核通道和60个可屏蔽中断)在这里插入图片描述
这是向量表的一部分,其中有部分的优先级被固定死了(可参考stm32参考手册)

中断优先级

STM32F103芯片支持60个可屏蔽中断通道,每个中断通道都具备自己的中断优先级控制字节(8位,但是STM32F103中只使用4位,高4位有效),用于表达优先级的高4位又被为组成抢占式优先级和响应优先级,通常也把响应优先级称为“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。
高抢占式优先级的中断事件会打断当前的主程序或者中断程序运行,俗称中断嵌套。在抢占式优先级相同的情况下,高响应优先级的中断优先被响应。
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们
的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理那一个。
用流程图更清晰地展示下:
在这里插入图片描述

二、中断配置

在这里插入图片描述

三、外部中断

EXTI简介

STM32F10x外部中断/事件控制器(EXTI)包含多达 20 个用于产生事件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置,以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发或边沿触发),还可独立地被屏蔽。
在这里插入图片描述

在这里插入图片描述

外部中断配置

在这里插入图片描述
一旦中断的原理理解了,不管是用标准库还是用HAL库都是很方便的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值