119,492
社区成员




void MX_GPIO_EXTI_Init()
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_14;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// EXTI interrupt init//
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
void EXTI15_10_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_14);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_PIN)
{
HAL_Delay(10);
if(GPIO_PIN == GPIO_PIN_14)
{
GPIOA_PIN_14_FLAG=1;
printf("interrupt_return\r\n");
}
}
int main(void)
{ MX_GPIO_EXTI_Init();
if(GPIOA_PIN_14_FLAG == 1)
{
printf("%s\r\n" , "interrupt");
printf("%s\r\n" , "interrupt_end");
GPIOA_PIN_14_FLAG = 0;
}
}
int main(void)
{ MX_GPIO_EXTI_Init();
while(1){
if(GPIOA_PIN_14_FLAG == 1)
{
printf("%s\r\n" , "interrupt");
printf("%s\r\n" , "interrupt_end");
GPIOA_PIN_14_FLAG = 0;
}
}
}
你主函数得搞个主循环吧while(1){ }