各位:
我在NUCLEO-F411RE的板子平台上基于HAL库调试程序,想实现按键中断(PC13),但试验了多次都失败了,麻烦高手帮忙看下哪里出了问题,谢谢!代码如下:
IO初始化部分,位于main.c中
HAL_Init();
SystemClock_Config();
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
__HAL_RCC_GPIOC_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI0_IRQn, 2, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
中断stm32f4xx_it.c中程序
void EXTI0_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
}
HAL_GPIO_EXTI_Callback函数,位于main.c中
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_13)
{
}
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(50);
}
基于以上代码实现当PC13即按键按下,PA5即LED翻转。现在按键按下没有任何反应,请高手指点。谢谢!
附上整个工程。
GPIO.zip
(3.21 MB)
|