RM电控笔记02 stm32外部中断实验

每个外设都可以中断,中断优先级越小越高。

1.初始化要连接到EXTI的GPIO

STM32F103 19 个外部中断为:
EXTI 线 0~15 :对应外部 IO 口的输入中断。
EXTI 线 16 :连接到 PVD 输出。
EXTI 线 17 :连接到 RTC 闹钟事件。
EXTI 线 18 :连接到 USB 唤醒事件。
EXTI 线 19 :连接到以太网唤醒事件。
以线 0 为例:它对应了 GPIOA.0 GPIOB.0 GPIOC.0
GPIOD.0 GPIOE.0 GPIOF.0 GPIOG.0 。而中断线每次只能连接到 1 IO 口上

可以将外设的.c和.h文件写在HARDWAERE的另一个文件夹。初始化配置,操作方

法跟按键实验,跑马灯是一致的。

2.初始化EXTI用于产生中断事件

包括选择中断线,选择中断模式,选择触发方式,使能。

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//外部中断,需要使能AFIO时钟

 3.初始化NVIC,用于处理中断

 配置其优先级,使能按键所在的外部通道

注意只有EXTI0_IRQn~EXTI4_IRQn,5~9为EXTI9_5_IRQn,EXTI15_10_IRQn

 

 4.编写中断服务函数

STM32F1 IO 口外部中断函数只有 7 个,分别为
void EXTI0_IRQHandler();
void EXTI1_IRQHandler();
void EXTI2_IRQHandler();
void EXTI3_IRQHandler();
void EXTI4_IRQHandler();
void EXTI9_5_IRQHandler();
void EXTI15_10_IRQHandler()
void EXTI0_IRQHandler(void)
{
  delay_ms(10);    //消抖
	if(WK_UP==1)
	{	  
		LED0=!LED0;
		LED1=!LED1;	
	}
	EXTI_ClearITPendingBit(EXTI_Line0);  //清除EXTI0线路挂起位
}

5.编写main函数

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值