STM32-EXTI

STM32-EXTI


配置PA15为上升沿外部中断
STM32-EXTI_第1张图片


配置NVIC中断优先级
STM32-EXTI_第2张图片


贴初始化代码

/*gpio.c*/
void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /*Configure GPIO pin : PA15 */
  GPIO_InitStruct.Pin = GPIO_PIN_15;
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 3, 0);//设置中断优先级分组
  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);//使能中断
}

定义中断相关函数

void EXTI15_10_IRQHander(void)//中断事件线
{
	HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_15);
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//中断回调函数-通用接口
{
	if(GPIO_Pin==GPIO_PIN_15)//实现相应定义
	{
      //USER CODE
      HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
	}
}

按下按键(PA15),就可以看到灯闪烁了

你可能感兴趣的:(stm32基础,单片机,stm32,c语言)