[STM32L5] 【STM32L562E-DK测评】-2-外部GPIO中断测试

[复制链接]
655|0
 楼主| YangTwo 发表于 2025-3-3 22:41 | 显示全部楼层 |阅读模式
DK板子上有两个用户按键:
3437867c5ba833978c.png

其中,B1是复位按键,B2是用户按键。
4889167c5bae99c75f.png

这与原理图是一致的:
4645367c5bb13c9e50.png

在代码中,配置PC13输入模式,并使能下降沿触发中断。
  1. static void EXTI13_IRQHandler_Config(void)
  2. {
  3.   GPIO_InitTypeDef   GPIO_InitStructure;


  4.   /* Enable GPIOC clock */
  5.   __HAL_RCC_GPIOC_CLK_ENABLE();

  6.   /* Configure PC.13 pin as input floating */
  7.   GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;


  8.   GPIO_InitStructure.Pull = GPIO_NOPULL;
  9.   GPIO_InitStructure.Pin = BUTTON_USER_PIN;
  10.   HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);


  11.   /* Enable and set line 13 Interrupt to the lowest priority */
  12.   HAL_NVIC_SetPriority(EXTI13_IRQn, 2, 0);
  13.   HAL_NVIC_EnableIRQ(EXTI13_IRQn);
  14. }
初始化LED,这样在按键按下后,可以改变LED的状态。
  1. int32_t BSP_LED_Init(Led_TypeDef Led)
  2. {
  3.   int32_t          status = BSP_ERROR_NONE;
  4.   GPIO_InitTypeDef GPIO_Init;

  5.   /* Enable the GPIO_LED Clock */
  6.   if (Led == LED9)
  7.   {
  8.     LED9_GPIO_CLK_ENABLE();
  9.   }
  10.   else /* Led = LED10 */
  11.   {
  12.     /* Enable VddIO2 for GPIOG */
  13.     __HAL_RCC_PWR_CLK_ENABLE();
  14.     HAL_PWREx_EnableVddIO2();
  15.     LED10_GPIO_CLK_ENABLE();
  16.   }

  17.   /* configure the GPIO_LED pin */
  18.   GPIO_Init.Pin   = LED_PIN[Led];
  19.   GPIO_Init.Mode  = GPIO_MODE_OUTPUT_PP;
  20.   GPIO_Init.Pull  = GPIO_PULLUP;
  21.   GPIO_Init.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  22.   HAL_GPIO_Init(LED_PORT[Led], &GPIO_Init);

  23.   HAL_GPIO_WritePin(LED_PORT[Led], LED_PIN[Led], GPIO_PIN_SET);

  24.   return status;
  25. }

下面是中断服务程序:
  1. void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
  2. {
  3.   if (GPIO_Pin == BUTTON_USER_PIN)
  4.   {
  5.     /* Toggle LED10 */
  6.     BSP_LED_Toggle(LED10);
  7.   }
  8. }

编译代码:
  1. arm-none-eabi-size  GPIO_EXTI.elf
  2. arm-none-eabi-objdump -h -S GPIO_EXTI.elf  > "GPIO_EXTI.list"
  3.    text           data            bss            dec            hex        filename
  4.    8088             24           1568           9680           25d0        GPIO_EXTI.elf
  5. Finished building: default.size.stdout

  6. Finished building: GPIO_EXTI.list


  7. 22:10:51 Build Finished. 0 errors, 0 warnings. (took 4s.653ms)

烧录程序,失败了,看来ST-LINK升级在所难免。
4730867c5bcabe6339.png

9149067c5bcdd737f2.png

点击open in update mode
653867c5bcfec934c.png

升级成功
217767c5bd7bb10a3.png

点击小虫子进入debug模式,之后全速运行
4520567c5bf79036e3.png

按下板子上的用户按键,小灯状态会进行翻转。
WeChat_20250303223615-ezgif.com-video-to-gif-converter.gif


您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

110

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部