STM32F4 在一个函数中配置 exti 端口中断
STM32F4 configuring exti port interrupt at one function
我为 8 个引脚配置了 gpio
和 exti
处理程序配置 (PD8,PD9...PD15)
每个都有单独的配置功能,并且运行良好。我可以只在一个功能上进行配置吗?有些线路使用相同的 irq 通道,这是一个问题吗?我想这样用(语法不重要,你说可以就行)
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);
GPIO_Init(GPIOD, &GPIO_InitStructure);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD,EXTI_PinSource8 | EXTI_PinSource9|
EXTI_PinSource10| EXTI_PinSource11|
EXTI_PinSource12| EXTI_PinSource13|
EXTI_PinSource14| EXTI_PinSource15);
/* Configure EXTI Line0 */
EXTI_InitStructure.EXTI_Line = EXTI_Line15;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_Init(&EXTI_InitStructure);
您可以在一行中初始化所有 GPIO 引脚,这是安全的。您不能 在一行中完成对 SYSCFG_EXTILineConfig
的所有调用,这是不允许的。原因是 EXTI_PinSourceN
值是数字常量而不是位掩码。请参阅 stm32f4xx_syscfg.h
以供参考。
我为 8 个引脚配置了 gpio
和 exti
处理程序配置 (PD8,PD9...PD15)
每个都有单独的配置功能,并且运行良好。我可以只在一个功能上进行配置吗?有些线路使用相同的 irq 通道,这是一个问题吗?我想这样用(语法不重要,你说可以就行)
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);
GPIO_Init(GPIOD, &GPIO_InitStructure);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD,EXTI_PinSource8 | EXTI_PinSource9|
EXTI_PinSource10| EXTI_PinSource11|
EXTI_PinSource12| EXTI_PinSource13|
EXTI_PinSource14| EXTI_PinSource15);
/* Configure EXTI Line0 */
EXTI_InitStructure.EXTI_Line = EXTI_Line15;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_Init(&EXTI_InitStructure);
您可以在一行中初始化所有 GPIO 引脚,这是安全的。您不能 在一行中完成对 SYSCFG_EXTILineConfig
的所有调用,这是不允许的。原因是 EXTI_PinSourceN
值是数字常量而不是位掩码。请参阅 stm32f4xx_syscfg.h
以供参考。