STM32F10X系列GPIO外部中断

本文介绍了如何使用STM32F10X系列的GPIO外部中断来控制LED灯,详细阐述了配置NVIC、EXTI寄存器的步骤以及中断服务函数的编写。关键点包括清除中断标志位、设置按键为上拉输入和正确连接中断线。同时提供了直接操作寄存器和使用函数两种方法的代码示例,并引用了相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


先从最简单的问题开始,用STM32外部中断的方法实现PB.0按键控制PA.0LED灯:

先总的说下实现中断的步骤:

1,配置NVIC寄存器(函数),设置中断为第几组,占先优先级和次优先级;

      函数方法:

           void NVIC_Configuration()      
  {
        NVIC_InitTypeDef NVIC_InitStruct;
      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);  
      NVIC_InitStruct.NVIC_IRQChannel=EXTI0_IRQn;            
      NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;   
      NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;           
      NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;          
      NVIC_Init(&NVIC_InitStruct);
}

      以上为配置优先级的一般步骤:设置优先级分组,设置中断通道,分别设置先占优先级,次占优先级,使能等;

            



2,配置EXTI寄存器及(函数),设置中断线,中断方式,等;

            

void EXTI_Configuration()
{
	        EXTI_InitTypeDef EXTI_InitStructure;
                EXTI_ClearITPendingBit(EXTI_Line0);
	        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);
		EXTI_InitStructure.EXTI_Line = EXTI_Line0;
		EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
		EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Fal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值