STM32 EXTI外部中断
时间:11-13
来源:互联网
点击:
外部中断引脚配置初始化:以PA0为例说明
1、外设端口时钟打开
RCC->APB2ENR|=1<2; //使能PORTA时钟
2、端口设置为输入
GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
GPIOA->CRL|=0X00000008;
3、端口选择上拉/下拉方式
GPIOA->ODR&=0xFFFFFFFE; //A0默认下拉
4、中断触发方式选择
Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发
5、嵌套向量中断控制(抢占优先级,响应优先级,组)
MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2
中断服务程序
以PA0外部中断说明
处理完之后要清除线上的中断标志位
void EXTI0_IRQHandler(void)//外部中断0服务程序
{
delay_ms(10);//消抖
if(KEY2==1) //按键2
{
LED0=!LED0;
LED1=!LED1;
}
EXTI->PR=1<0; //清除LINE0上的中断标志位
}
1、外设端口时钟打开
RCC->APB2ENR|=1<2; //使能PORTA时钟
2、端口设置为输入
GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入
GPIOA->CRL|=0X00000008;
3、端口选择上拉/下拉方式
GPIOA->ODR&=0xFFFFFFFE; //A0默认下拉
4、中断触发方式选择
Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发
5、嵌套向量中断控制(抢占优先级,响应优先级,组)
MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2
中断服务程序
以PA0外部中断说明
处理完之后要清除线上的中断标志位
void EXTI0_IRQHandler(void)//外部中断0服务程序
{
delay_ms(10);//消抖
if(KEY2==1) //按键2
{
LED0=!LED0;
LED1=!LED1;
}
EXTI->PR=1<0; //清除LINE0上的中断标志位
}
STM32EXTI外部中 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)