目录
一、关于中断
有关中断的简介在我上一篇博客:利用串口中断方式实现完成STM32的USART串口通讯程序
已经有所提及了,在这里我再补充几个。
外部中断
什么是外部中断?举个例子:比如你今天有个快递,快递一般放在前台或是门卫。你有两种方法,1、不停问前台,你的快递到了没有;2、等快递到了,让前台告诉你。前者就是轮询,后者就是外部中断。外部中断是由引脚检测到的中断。中断可以由上升沿、下降沿或双边沿触发。换句话说,中断不是由CPU去“询问”,而是由中断控制器“通知”的。
为了给CPU减小负担,我们通常使用外部中断。
外部中断控制器:
- 管理23个外部中断线(EXTI Line)
- 0~15号外部中断线用于由GPIO引脚触发的外部中断
- 16~22号外部中断线用于RTC闹钟事件、以太网唤醒事件和USB唤醒事件等
- 当对应GPIO引脚与外部中断线连接后,GPIO引脚才具备外部中断的功能,可以设置外部中断的触发方式
GPIO引脚的外部中断
**GPIO引脚的外部中断触发方式:**上升沿触发、下降沿触发、双边沿触发。
引脚分组:
属于外部中断的线共有16条,引脚数量多于16,所以引脚要共用外部中断线。
二、实验内容与实验过程
1、实验内容
用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
整体来说,我们可以把整个电路等效为一个按键电路,如图所示:
上拉式按键:
按键按下,引脚PB7读到低电平
按键释放,引脚PB7读到高电平
触发方式:
按键按下瞬间,形成下降沿
按键释放瞬间,形成上升沿
在本次实验中我们的