|
|
同一个按键,长按和短按串口需要发送不同的数据,调试结果发现 长按过程中会先响应短按再相应长按,如何配置才能长短按分离互不影响配置代码如下
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;
}
}
|
|