Arm 将引脚配置为中断臂M3 STM32F1xx

Arm 将引脚配置为中断臂M3 STM32F1xx,arm,interrupt,cortex-m3,Arm,Interrupt,Cortex M3,我试图将引脚PD3配置为外部中断,这是我的配置,但它似乎不起作用。所以我定义了所有东西并对其进行了配置,但仍然无法使中断在下降沿或上升沿工作 void Configure_PD3(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD,ENABLE); // enables cloc

我试图将引脚PD3配置为外部中断,这是我的配置,但它似乎不起作用。所以我定义了所有东西并对其进行了配置,但仍然无法使中断在下降沿或上升沿工作

     void Configure_PD3(void) {
     GPIO_InitTypeDef GPIO_InitStruct;

     /* GPIO Ports Clock Enable */

     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD,ENABLE); // enables clock to portD
     GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
     /*Configure GPIO pin : PD3 */
     GPIO_InitStruct.GPIO_Pin = GPIO_Pin_3;
     GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
     GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;

     GPIO_Init(GPIOD, &GPIO_InitStruct);
    /* PD3 is connected to EXTI_Line3 */
        EXTI_InitStruct.EXTI_Line = EXTI_Line3;
        /* Enable interrupt */
        EXTI_InitStruct.EXTI_LineCmd = ENABLE;
        /* Interrupt mode */
        EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
        /* Triggers on rising and falling edge */
        EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
        /* Add to EXTI */
        EXTI_Init(&EXTI_InitStruct);

     /* EXTI interrupt init*/
     NVIC_SetPriority(EXTI3_IRQn, 0);
     NVIC_EnableIRQ(EXTI3_IRQn);
    }

    void EXTI3_IRQHandler(void)
    {
      int i = 0;

    }

    void main() {

    // Don't put any variables on the stack here, as FreeRTOS seems to reuse this space.
    // This might be valid as this thread will be dead after vTaskStartScheduler().

        hardware_init();

        Co

nfigure_PD3();
}

是的,我现在就在这里。我不知道上面的代码是否丢失了一些东西,或者我假设这不是你真正的主代码,因为你会从底部掉下来?是的,这就是我现在的位置。我不知道上面的代码是否丢失了一些东西,或者我假设这不是您的实际主代码,因为您会从底部掉下来?