打印
[STM32U5]

【NUCLEO-U5A5ZJ-Q测评】-3-按键中断

[复制链接]
584|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YangTwo|  楼主 | 2023-11-11 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发板上有一个用户按键:



按键相关定义:

/**
  * [url=home.php?mod=space&uid=247401]@brief[/url] Key push-button
  */
#define BUTTON_USER_PIN                       GPIO_PIN_13
#define BUTTON_USER_GPIO_PORT                 GPIOC
#define BUTTON_USER_GPIO_CLK_ENABLE()         __HAL_RCC_GPIOC_CLK_ENABLE()
#define BUTTON_USER_GPIO_CLK_DISABLE()        __HAL_RCC_GPIOC_CLK_DISABLE()
#define BUTTON_USER_EXTI_IRQn                 EXTI13_IRQn
#define BUTTON_USER_EXTI_LINE                 EXTI_LINE_13


接下来使能外部中断:
BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);


注册相关的中断信息:

    /* Configure Button pin as input with External interrupt */
    gpio_init_structure.Mode = GPIO_MODE_IT_RISING;

    HAL_GPIO_Init(BUTTON_PORT[Button], &gpio_init_structure);

    (void)HAL_EXTI_GetHandle(&hpb_exti[Button], BUTTON_EXTI_LINE[Button]);
    (void)HAL_EXTI_RegisterCallback(&hpb_exti[Button],  HAL_EXTI_COMMON_CB_ID, ButtonCallback[Button]);

    /* Enable and set Button EXTI Interrupt to the lowest priority */
    HAL_NVIC_SetPriority((BUTTON_IRQn[Button]), BSP_BUTTON_PRIO[Button], 0x00);
    HAL_NVIC_EnableIRQ((BUTTON_IRQn[Button]));

在按键按下后,会产生中断请求,进而在回调函数中可以进行预定义的操作。



使用特权

评论回复
沙发
lajfda003| | 2023-12-11 18:51 | 只看该作者
多个按键用中断应该是没有问题的。

使用特权

评论回复
板凳
uiint| | 2023-12-12 15:02 | 只看该作者
能判断是双击还是单击吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

101

帖子

1

粉丝