【STM32L496G-DISCO试用体验】+02.按键中断

  • wuQAQ
  • LV4工程师
  • |      2017-08-26 22:10:45
  • 浏览量 1059
  • 回复:2
1、在上一篇点亮LED的基础上进行修改 主要有3个步骤: (1)、配置时钟 (2)、配置中断 (3)、配置中断函数 2、配置时钟可以使用上一篇的也可以采用DISCO配置文件中的BSP_LED_Init(LED2)函数 3、配置中断 查看原理图: 可以知道使用的LED2(PB13)。
static void EXTI15_10_IRQHandler_Config(void)

{

  GPIO_InitTypeDef   GPIO_InitStructure;



  /* Enable GPIOC clock */

  __HAL_RCC_GPIOC_CLK_ENABLE();



  /* Configure PC.13 pin as input floating */

  GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;

  GPIO_InitStructure.Pull = GPIO_PULLDOWN;

  GPIO_InitStructure.Pin  = GPIO_PIN_13;

  HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);



  /* Enable and set EXTI lines 10 to 15 Interrupt to the lowest priority */

  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);

  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

}

4、配置中断函数: 在主函数中添加回调函数:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

{

  if (GPIO_Pin == GPIO_PIN_13)

  {

    /* Toggle LED2 */

    BSP_LED_Toggle(LED2);

  }

}

在stm32l4xx_it.c文件中添加以下内容:
void EXTI15_10_IRQHandler(void)

{

  HAL_GPIO_EXTI_IRQHandler(SEL_JOY_PIN);

}
编译,烧写即可。 工程文件:
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
SingleYork 2017-08-28
你这是把官方例程库都搬出来了么;P:
0   回复
举报
发布
wuQAQ 回复 2017-08-28
:$给你发现了
0   回复
举报
x
收藏成功!点击 我的收藏 查看收藏的全部帖子