求大神指导stm32l431外部中断,我清除中断标志位了但是只响应一次

୧⍤⃝�483 2023-05-12 10:36:39
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;
		}
}

 

...全文
492 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
御姐身萝莉心 2023-05-16
  • 打赏
  • 举报
回复
 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;
}
}

}

qq_27479099 2023-05-16
  • 打赏
  • 举报
回复 1

你主函数得搞个主循环吧while(1){ }

119,492

社区成员

发帖
与我相关
我的任务
社区描述
分享嵌入式学习经验,讨论嵌入式学习方法,欢迎朋友们多多指教! 不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!
嵌入式硬件arm开发 个人社区 江苏省·南京市
社区管理员
  • 矜辰所致
  • Qt历险记
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

分享嵌入式学习经验,

讨论嵌入式学习方法,

欢迎朋友们多多指教!

试试用AI创作助手写篇文章吧