STM32F407的外部中断设置

本文介绍了如何在STM32微控制器上配置外部中断,包括GPIO配置、启用SYSCFG时钟、设置EXTI和NVIC中断优先级,并提供了一个具体的中断处理函数示例。

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


比如要是使用GPC3作为中断源,上升沿触发

外部中断必须配置好EXTI和NVIC

使用以下函数打开SYSCFG的时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE)


GPIO设置如下

void GPIO_Configuration(void)
{

GPIO_InitTypeDef GPIO_InitStructure;

/* GPIOF Periph clock enable */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//注意要打开SYSCFG时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC, &GPIO_InitStructure);

}


因为要用的IO口做中断源,故IO的复用功能必须使能,F4的与F103的有些不同,它的外部中断复用功能是由SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOx,GPIO_PinSourcex);  进行配置的。

void EXTI_Configuration(void)
{
    EXTI_InitTypeDef EXTI_InitStructure;


    //GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource3);  //这是以前的F103所用的配置函数
    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource3);    //407使用的配置函数
    EXTI_InitStructure.EXTI_Line = EXTI_Line3;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

}


设置外部中断源和优先级

void NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;


  /* Enable the USARTx Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}



中断处理函数


void EXTI3_IRQHandler(void)
{

if(EXTI_GetITStatus(EXTI_Line3) != RESET)
{
do something();
EXTI_ClearITPendingBit(EXTI_Line3);
printf("EXTI3_IRQHandler\r\n");
}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值