【嵌入式系统实践】实验三EXTI按钮外部中断控制LED灯参考代码

此内容不属于实验内容,因自己手头有一STM32F103,故验证性的进行代码实验,按照老师课堂ppt进行了一下复现。

通过按钮控制LED灯的亮灭(状态取反)。

main.c代码:

cpp 复制代码
#include "STM32F10X.h"
#include "stdio.h"

void NVIC_Conf(void){
	NVIC_InitTypeDef Nvic;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
	Nvic.NVIC_IRQChannel = EXTI9_5_IRQn;
	Nvic.NVIC_IRQChannelPreemptionPriority = 0;
	Nvic.NVIC_IRQChannelSubPriority = 0;
	Nvic.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&Nvic);
}

void LED_Conf(void){			//pa8
	GPIO_InitTypeDef led;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	led.GPIO_Pin = GPIO_Pin_8;
	led.GPIO_Speed = GPIO_Speed_50MHz;
	led.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOA, &led);
}

void KEY_Conf(void){			//pc5 key0
	GPIO_InitTypeDef key;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
	key.GPIO_Pin = GPIO_Pin_5;
	key.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_Init(GPIOC, &key);
	GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource5);
}

void EXTI_conf(void){
	EXTI_InitTypeDef exti;
	exti.EXTI_Line = EXTI_Line5;
	exti.EXTI_Mode = EXTI_Mode_Interrupt;
	exti.EXTI_Trigger = EXTI_Trigger_Falling;
	EXTI_Init(&exti);
}

int main(void){
	NVIC_Conf();
	LED_Conf();
	KEY_Conf();
	EXTI_conf();
	GPIO_ResetBits(GPIOA, GPIO_Pin_8);
	while(1){
	}

}

it.c部分代码:

cpp 复制代码
void EXTI9_5_IRQHandler(void)
{
     if(EXTI_GetITStatus(EXTI_Line5) != RESET) 
     {
        GPIO_WriteBit(GPIOA, GPIO_Pin_8,(BitAction)((1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_8))));
        EXTI_ClearITPendingBit(EXTI_Line5); 
     }
}
相关推荐
Jcenav3 小时前
OCXO外围电路设计指南
单片机·嵌入式硬件
Nautiluss3 小时前
一起玩XVF3800麦克风阵列(八)
大数据·人工智能·嵌入式硬件·github·音频·语音识别
神圣的大喵3 小时前
平台无关的嵌入式通用按键管理器
c语言·单片机·嵌入式硬件·嵌入式·按键库
三佛科技-134163842124 小时前
FT8353系列(FT8353A/B/C/CD/DD/K/KD/PD)隔离型LED恒流驱动IC芯片 典型应用电路
单片机·物联网·智能家居·pcb工艺
无人装备硬件开发爱好者5 小时前
深度解析:STM32 MDK 工程 HEX 文件转 BIN 文件 —— 原理、方法、优缺点与实战指南(中)
stm32·嵌入式软件·hex2bin
阿拉斯攀登5 小时前
嵌入式-硬件基础:了解三极管
单片机·嵌入式硬件·三极管
逐步前行5 小时前
C51_74HC165并口转串口
单片机·51单片机
HarrySunCn5 小时前
如何使用VSCode开发Arduino项目
ide·vscode·单片机·编辑器
嵌入式的飞鱼6 小时前
SD NAND 焊接避坑指南:LGA-8 封装手工焊接技巧与常见错误
人工智能·stm32·单片机·嵌入式硬件·tf卡
三佛科技-134163842126 小时前
LN8K05A/B/C_5V非隔离AC-DC电源芯片 典型应用场景、典型电路、与阻容降压的对比分析
单片机·嵌入式硬件·物联网·智能家居·pcb工艺