⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
Hdhdh Ddjek
离线
最后看到:4个月3个星期前
加入:2020-06-03福音14:15
长按按钮

我如何实现一个长按按钮事件?

我目前有以下和来自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); }

关键词:
设备:
PM_Dialog
离线
最后看到:1天1小时前
工作人员
加入:2018-02-08 11:03
嗨Hdhdh Ddjek,

嗨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

Hdhdh Ddjek
离线
最后看到:4个月3个星期前
加入:2020-06-03福音14:15
以上都没有帮助,那又怎样

上面没有帮助,所以我想是按钮状态只显示01在应用程序时,3秒已经过去。

PM_Dialog
离线
最后看到:1天1小时前
工作人员
加入:2018-02-08 11:03
你好,

你好,

你能分享一下你的实现吗?

谢谢,PM_Dialog