博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM32单片机外部中断配置讲解
阅读量:6982 次
发布时间:2019-06-27

本文共 1162 字,大约阅读时间需要 3 分钟。

hot3.png

单片机外部中断简介

所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平、低电平)、边沿变化(上升沿、下降沿)等。51单片机有5个中断源,其中有两个是外部中断,分别为INT0和INT1,INT0被分配在P3.2引脚,INT1被分配在P3.2引脚,也即是说如果使用51单片机的外部中断0,则必须将信号接在P3.2上,否则无效。

02

举例说明什么是中断

单片机在执行程序时有两种方式:

查询方式
中断方式
所谓查询方式就是单片机一遍一遍的扫描,查看所监视的目标有没有发生变化,是一种主动式的监视方法,用一个成语可以很客观的描述:守株待兔
所谓中断方式就是单片机不主动去监视目标,而是目标主动通知单片机状态发生了变化,是一种被动式的监视方法,也可以用一个成语来形容:不速之客
有一所学校的院墙破了一个洞,为了防止学生半夜跑出去上网,在墙修好之前,学校安排保安每天夜里守在那个洞的旁边监视,这就是守株待兔。到了半夜保安很困想睡觉但是又害怕扣工资,怎么办?这个保安很聪明就在洞口拉了一条绳子把绳子的另一端绑在自己的手腕上,只要有人想出去就会绊倒绳子从而惊醒睡觉的保安,这就是不速之客。这样既不影响保安睡觉,又能捉住半夜出去上网的学生,还能避免保安被扣工资,由此可见通过使用中断大大节省了保安的精力。这就是使用中断的好处。

03

STM32单片机外部中断简介

STM32单片机的每一个GPIO都可以被设置为外部中断输入,根据引脚序号的不同可以将外部中断分为不同的组,分别为PA0-PG0为EXTI0组,以此类推,PA15-PG15为EXTI15组,共16组,并且每一组中同一个时刻只能有一个中断源工作,所以,STM32单片机最多允许同时有16个外部中断。外部中断的分配方式如下表所示:

STM32单片机的外部中断触发方式为边沿触发,即上升沿触发和下降沿触发。

04

STM32外部中断配置步骤

STM32单片机在配置外部中断时可以按照以下步骤来操作:

1.初始化GPIO为输入;
2.开启复用时钟,设置映射关系;
3.设置触发条件;
4.分配中断向量控制器,并使能;
5.编写中断服务函数;

05

STM32外部中断相关的寄存器

1.初始化GPIO时要用到如下寄存器:

APB2ENR:开启GPIO时钟和复用时钟;
CRH:端口配置高寄存器;
CRL:端口配置低寄存器;
EXTICR[0]-EXTICR[3]:外部中断配置寄存器
IMR:中断屏蔽寄存器;
EMR:事件屏蔽寄存器;
FTSR:下降沿触发选择寄存器;

RTSR:上升沿触发选择寄存器

ISER[0]-ISER[3]:NVIC中断向量控制器;

转载于:https://my.oschina.net/u/3629177/blog/1490741

你可能感兴趣的文章
several useful Store Procedures in MSSQL
查看>>
对半搜索
查看>>
关于移动端弹窗内容滑动底部页面不滑动的问题
查看>>
游戏2048源代码
查看>>
TOJ3039: 材质贴图
查看>>
基于FPGA的VGA显示静态图片
查看>>
shell之脚本练习
查看>>
版本控制git之五-标签管理 tags 标签 代码版本 如: v1.0
查看>>
分享Silverlight/WPF/Windows Phone一周学习导读(1月9日-1月16日)
查看>>
rsync生产排错FAQ整理16
查看>>
Ruby和SHELL中如何遍历指定目录的文件
查看>>
NSLocalizedString 实现国际化
查看>>
迎接“云”时代的全面到来
查看>>
梭子鱼邮件归档设备配置
查看>>
论“性能需求分析”系列专题(一)之 性能需求剖析
查看>>
oracle删除一个用户
查看>>
VR與AI的激情相遇
查看>>
CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)
查看>>
排错之网络映射缓存凭证记录导致备份计划任务失败
查看>>
[Selenium] 基本使用
查看>>