微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32开发板学习笔记--外部中断

STM32开发板学习笔记--外部中断

时间:11-28 来源:互联网 点击:
1、先去掉“stm32f10x_conf.h”中TIM前的注释符号

2、在NVIC_Configuration();中加入
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);// 选择使用优先级分组第1组
//使能EXTI3中断
NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQChannel;
//设置通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; //指定抢占式优先级别0
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
// 指定响应优先级别0
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //通道全能
NVIC_Init(&NVIC_InitStructure);

3、初始化PA0时加入
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3);//选择 GPIOA_PIN3管脚用作外部中断线路

4, 外部中断函数
void EXTI_Configuration(){
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line3;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}

5, 在“stm32f10x_it.c” 的 void EXTI3_IRQHandler(void) 中加入中断处理程序

void EXTI3_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line3) != RESET)

{

GPIO_SetBits(GPIOA, GPIO_Pin_1);//点亮PA1的发光二极管
EXTI_ClearITPendingBit(EXTI_Line3);
//清除EXTI3的中断标志位

}


}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top