PA0接WK_UP按键,按下高电平,松开低电平。

配置流程:

1.配置IO口时钟

 __HAL_RCC_GPIOA_CLK_ENABLE();

2。配置IO口

  GPIO_InitTypeDef GPIO_InitStruct = {0};
    //   配置PA0引脚
  GPIO_InitStruct.Pin = GPIO_PIN_0;

   //    配置为双边沿中断模式
  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
   //   默认下拉
  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  //   初始化PA0
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

3.找对应的中断函数

以对应引脚PA0的中断向量EXTI0在startup_stm32f103xb.s寻找对应中断函数EXTI0_IRQHandler

将中断处理代码写入中断函数中

void EXTI0_IRQHandler(void)
{
    /* 清中断标志位*/
    HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
    /* 双边沿计数 */
	cnt=cnt+1;

}

4.使能中断并配置中断优先级

//配置EXTI0优先级 第0组第0个 
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
//使能中断
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐