我如何实现一个长按按钮事件?
我目前有以下和来自arduino环境,我通常使用millis()来计时按钮按下。
Static void user_app_button_press_cb(void) {uint8_t next_btn_event = 0;//读取按钮状态if(GPIO_GetPinStatus(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN)) {app_sleep_env. txt . txt;custs1_btn_state = CUSTS1_BTN_STATE_RELEASED;next_btn_event = WKUPCT_PIN_POLARITY_LOW;} else {app_sleep_env. conf;custs1_btn_state = CUSTS1_BTN_STATE_PRESSED;next_btn_event = WKUPCT_PIN_POLARITY_HIGH;} //更新按钮特征结构custs1_val_ntf_ind_req *req = KE_MSG_ALLOC_DYN(CUSTS1_VAL_NTF_REQ, prf_get_task_from_id(TASK_ID_CUSTS1), TASK_APP, custs1_val_ntf_ind_req, DEF_SVC1_BUTTON_STATE_CHAR_LEN);申请- > conidx = app_env - > conidx;申请- >通知= true;申请- >处理= SVC1_IDX_BUTTON_STATE_VAL; req->length = DEF_SVC1_BUTTON_STATE_CHAR_LEN; req->value[0] = app_sleep_env.custs1_btn_state; ke_msg_send(req); // Configure next button event user_app_set_button_event(next_btn_event); }
关键词:
设备:
嗨Hdhdh Ddjek,
谢谢你的问题。您希望在按钮释放时触发回调吗?当设备处于睡眠模式时,是否需要此按钮来唤醒设备?如果是,请查看SKD的ble_app_sleepmode示例,并检查app_button_enable()函数。这个例子使用唤醒控制器来配置唤醒pin。
也许你可以看看过去论坛上关于长按按钮的一些帖子:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-da1458x-bt42-%E2%80%93-software/button-long-press-detection
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-42-%E2%80%93-software/button-press-time
如果你在这方面需要进一步的支持,请告诉我
谢谢,PM_Dialog
上面没有帮助,所以我想是按钮状态只显示01在应用程序时,3秒已经过去。
你好,
你能分享一下你的实现吗?
谢谢,PM_Dialog