STM32F429--EXTI外部中断/事件控制器

EXTI:External interrupt /event controll

具体的表现形式为

				      导致                 
外部的高低电平变化------------->中断/事件发生(需要配置NVIC)

外部中断/事件控制器功能框图

在这里插入图片描述
具体可以分为两部分:
1- 中断(下图的1,2,3,4,5)
2- 事件(下图的1,2,3,6,7,8)
在这里插入图片描述
由上图可知,外部中断是挂载到APB总线上的,/23表示有23根结构相同的线。
(详情看stm32f4xx的中文参考手册第十章第二小节部分,下面对应的10.x.x代表手册对应章节部分)

1处:输入线
10.2.5 SYSCFG外部中断配置寄存器,16X9=144个GPIO口
在这里插入图片描述
在这里插入图片描述
与上图类似,总共16条
SYSCFG_EXTICR2 EXTIx x(4~7)
SYSCFG_EXTICR3 EXTIx x(8~11)
SYSCFG_EXTICR4 EXTIx x(12~15)
剩余的7条
在这里插入图片描述
2处:边沿检测电路
在这里插入图片描述
3处:软件中断屏蔽寄存器
在这里插入图片描述
事件屏蔽寄存器如下
在这里插入图片描述
4处:挂起寄存器
在这里插入图片描述
5处:NVIC
具体查看官方的misc.h54行,73行(有点多就不一一列举),或者看ARM-Cortex-M4内核的官方手册说明,看名字就可以知道大概意思了,下面是部分截图。
在这里插入图片描述

实验设计

需求
1.PA0连接到EXTI用于产生中断,PA0的电平变化通过按键来控制
2.产生一次中断,LED翻转一次
编程须知:
打开开发板原理图,PA0是按键的连接引脚,默认被地拉低低电平,需要上升沿触发
编程要点:
1.初始化要连接到EXTI的GPIO
2.初始化EXTI用于产生中断事件
3.初始化NVIC,用于处理中断
4.编写中断服务函数
5.main函数

1.bsp_led.c

#include "./led/bsp_led.h"   

 /**
  * @brief  初始化控制LED的IO
  */
void LED_GPIO_Config(void)
{
   		
		/*定义一个GPIO_InitTypeDef类型的结构体*/
		GPIO_InitTypeDef GPIO_InitStructure;

		/*开启LED相关的GPIO外设时钟*/
		RCC_AHB1PeriphClockCmd ( LED1_GPIO_CLK|LED2_GPIO_CLK|LED3_GPIO_CLK|LED4_GPIO_CLK, ENABLE); 

		/*选择要控制的GPIO引脚*/															   
		GPIO_InitStructure.GPIO_Pin = LED1_PIN;	

		/*设置引脚模式为输出模式*/
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;   
    
    /*设置引脚的输出类型为推挽输出*/
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    
    /*设置引脚为上拉模式*/
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

		/*设置引脚速率为2MHz */   
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; 

		/*调用库函数,使用上面配置的GPIO_InitStructure初始化GPIO*/
		GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);	
    
    /*选择要控制的GPIO引脚*/															   
		GPIO_InitStructure.GPIO_Pin = LED2_PIN;	
    GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);	
    
    /*选择要控制的GPIO引脚*/															   
		GPIO_InitStructure.GPIO_Pin = LED3_PIN;	
    GPIO_Init(LED3_GPIO_PORT, 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值