EXTI基础知识
STM32F103 的每一个IO都可以做中断输入(只不过不能同时全部连接),其通过19个中断控制器连接处理器。
19 个外部中断为:
线 0~15:对应外部 IO 口的输入中断。
线 16:连接到 PVD 输出。
线 17:连接到 RTC 闹钟事件。
线 18:连接到 USB 唤醒事件
16个中断线与IO的对用关系为,同一时刻,同一EXTI线只能连接一个IO口。而且EXTI 0—4 每条线都有独立的中断服务函数。EXTI 5—9公用一个中断服务函数。EXTI 10—15公用一个中断服务函数。
EXTI的使用
实例代码
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure; //定义EXTI机构体
NVIC_InitTypeDef NVIC_InitStructure; //定义NVIC机构体
GPIO_InitTypeDef GPIO_InitStructure; //一个结构体 通用语句
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOE,ENABLE);
//GPIOA 和 GPIOE 时钟的使能
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; //配置输出模式为浮空输入
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //配置端口为 0号口
//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //配置输出频率为50MHZ
//输入模式不用配置速率
GPIO_Init(GPIOA,