外部中断实验
实验目的:通过板载的4个按键控制板载两个LED的亮灭以及蜂鸣器的发声。 一、STM32的每个I/O口都可以作为中断输入,要把I/O口作为外部中断输入,有以下几个步骤。 ①、初始化I/O口为输入 ②、开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。 ③、开启与该 IO 口相对的线上中断/事件,设置触发条件。 ④、配置中断分组(NVIC),并使能中断。 ⑤、编写中断服务函数。 二、软件设计 exti.c文件 #include "exti.h" #include "led.h" #include "key.h" #include "delay.h" #include "usart.h" //外部中断 0 服务程序 void EXTI0_IRQHandler(void) { delay_ms(10); //消抖 if(WK_UP==1) //WK_UP 按键 { LED0=!LED0; LED1=!LED1; } EXTI->PR=1<<0; //清除 LINE0 上的中断标志位 } //外部中断 9~5 服务程序 void EXTI9_5_IRQHandler(void) { delay_ms(10); //消抖 if(KEY0==0) LED0=!LED0; //按键 0 EXTI->PR=1<<5; //清除 LINE5 上的中断标志位 } //外部中断 15~10