设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 199|回复: 0
打印 上一主题 下一主题

NRF52832协议栈下按键长按短按分离

[复制链接]

1

主题

1

帖子

11

积分

新手上路

Rank: 1

积分
11
跳转到指定楼层
楼主
小辰学蓝牙 发表于 2026-2-10 11:35:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同一个按键,长按和短按串口需要发送不同的数据,调试结果发现 长按过程中会先响应短按再相应长按,如何配置才能长短按分离互不影响配置代码如下
  bsp_btn_ble.c

       
    err_code = bsp_event_to_button_action_assign(2,//按键对应的ID
                                                 BSP_BUTTON_ACTION_LONG_PUSH,//按的方式
                                                 BSP_EVENT_KEY_2);//触发的事件

    RETURN_ON_ERROR_NOT_INVALID_PARAM(err_code);
       
       
    err_code = bsp_event_to_button_action_assign(2,//按键对应的ID
                                                 BSP_BUTTON_ACTION_PUSH,//按的方式
                                                 BSP_EVENT_KEY_3);//触发的事件

    RETURN_ON_ERROR_NOT_INVALID_PARAM(err_code);


main.c
static void bsp_event_handler(bsp_event_t event)
{
    ret_code_t err_code;

    switch (event)
    {
        case BSP_EVENT_SLEEP:
            sleep_mode_enter();
            break; // BSP_EVENT_SLEEP

        case BSP_EVENT_DISCONNECT:
            err_code = sd_ble_gap_disconnect(m_conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
            if (err_code != NRF_ERROR_INVALID_STATE)
            {
                APP_ERROR_CHECK(err_code);
            }
            break; // BSP_EVENT_DISCONNECT

        case BSP_EVENT_WHITELIST_OFF:
            if (m_conn_handle == BLE_CONN_HANDLE_INVALID)
            {
                err_code = ble_advertising_restart_without_whitelist(&m_advertising);
                if (err_code != NRF_ERROR_INVALID_STATE)
                {
                    APP_ERROR_CHECK(err_code);
                }
            }
            break; // BSP_EVENT_KEY_0
         case BSP_EVENT_KEY_2:
                                            
                                app_uart_put(0x58);

                                          break;
         case BSP_EVENT_KEY_3:   
               app_uart_put(0x54);
                                          break;
        default:
            break;
    }
}





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2026-3-3 21:39 , Processed in 0.085185 second(s), 30 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表