STM32F407学习记录---外部中断实验

这篇博客详细介绍了如何在STM32F407上配置外部中断,包括使能IO口时钟、映射中断线、初始化线上中断、配置中断分组和编写中断服务函数。内容涵盖了STM32F4的外部中断结构和相关寄存器配置,以及中断服务函数的编写注意事项。
摘要由CSDN通过智能技术生成

STM32F407学习记录---外部中断

概述

将 STM32F4 的 IO 口作为外部中断输入,实现通过板载的 4 个按键,控制板载的两个 LED 的亮灭以及蜂鸣器的发声

STM32F4外部中断简介

  与外部中断有关的代码分布在stm32f4xx_exti.h和stm32f4xx.c文件中。
  STM32F4的每一个IO口都可作为外部中断的中断输入口,其中断控制器支持22个外部中断/事件的请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。
STM32F407的22个爱不中断为:
  EXTI线0~15:对应外部IO的输入中断;
  EXTI线16:连接到PVD输出;
  EXTI线17:连接得到RTC闹钟事件;
  EXTI线18:连接到USB OTG FS唤醒事件;
  EXTI线19:连接到以太网唤醒事件;
  EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件;
  EXTI线21;连接到RTC入侵和时间戳事件;
  EXTI线22:连接到RTC唤醒事件;
  从上面看,STM32F4共IO口使用的中断线只有16个,但STM32F4的IO口却不止16个,那么STM32F4是怎样将16个中断线和IO口一一对应起来的?
答: GPIO管脚GPIOx_0~GPIOx_15(x = A,B,C,D,E,F,G,H,I)分别对应中断线0~15。这样,每个中断线对应了最多9个IO口。以线0为例,它对应了GPIOA_0,GPIOB_0,GPIOC_0,GPIOD_0,GPIOE_0,GPIOF_0,GPIOG_0,GPIOH_0和GPIOI_0。故而每个中断线一次只能连接到一个IO口。所以需要通过配置决定中断线与哪一个IO口联系。下图为中断线与IO口的映射关系:
在这里插入图片描述
以下为使用库函数配置外部中断的步骤:
1)使能IO口时钟,初始化IO口为输入模式
  此处以板载按键KEY0对应的GPIOE_4为例进行说明:GPIO时钟初始化函数为:

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);

2)使能外部中断时钟
  外部中断时钟使能函数为:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值