STM32外中断

简介: STM32外中断

初始化需要用到的引脚

GPIO_InitTypeDef GPIO_InitStruct;
//这里GPIOB_8和GPIOE_2是一个按键的两端
// 初始化GPIO,作为中断输入口
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);       // 开时钟
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;                        // 选择引脚
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;                // 选择模式
GPIO_Init(GPIO_PORT, &GPIO_InitStruct);                     // 载入配置
//按键的另一端,提供高电平
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);       // 开时钟
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;                        // 选择引脚
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;               // 选择模式
GPIO_Init(GPIOE, &GPIO_InitStruct);                       // 载入配置
GPIO_ResetBits(GPIOE, GPIO_Pin_2);

初始化外中断外设

EXTI_InitTypeDef EXTI_InitStruct;
// 初始化EXTI
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);          // 开时钟
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);   // 选择 输入线  
EXTI_InitStruct.EXTI_Line = EXTI_LINE;                        // 选择 中断线
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;              // 选择中断还是事件
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising_Falling;   // 选择触发模式
EXTI_InitStruct.EXTI_LineCmd = ENABLE;                        // 使能端
EXTI_Init(&EXTI_InitStruct);

配置外中断优先级

NVIC_InitTypeDef NVIC_InitStruct;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);          // 选择中断组别,每个组别的 主优先级所占位数不同
NVIC_InitStruct.NVIC_IRQChannel = EXTI9_5_IRQn;          // 选择哪一个中断进行配置
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;   // 选择主优先级
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;          // 选择次优先级
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;             // 使能
NVIC_Init(&NVIC_InitStruct);
目录
相关文章
|
6月前
|
开发者
STM32中断详解及其编程实践
STM32中断详解及其编程实践
404 1
|
5月前
|
芯片
【STM32】STM32简述中断的基础知识
【STM32】STM32简述中断的基础知识
|
芯片
STM32速成笔记(四)—中断
本文介绍了中断的概念,中断的相关名词,STM32外部中断配置方法以及使用中断的注意事项。给出了外部中断点亮LED程序设计思路和关键代码。
215 0
STM32速成笔记(四)—中断
STM32中断与事件的理解
STM32中断与事件的理解
387 1
|
数据格式
【STM32】串口通讯USART串口中断配置
【STM32】串口通讯USART串口中断配置
592 0
【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制
【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制
402 0
【STM32】高级定时器TIM1计数中断配置
【STM32】高级定时器TIM1计数中断配置
516 0
|
传感器
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
316 0
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
STM32:定时器定时中断
STM32:定时器定时中断
186 0
STM32:定时器定时中断