5个职位/ 0个新
最后发表
lianghuok2
离线
最后看到:2年7个月前
加入:2016-05-30 17
键盘的代码DA14580_KBD_3.10.6连接苹果的问题

目前键盘代码,编译在DA14580DEVKT-B上运行,只有安卓和windows能正常连接和使用。
目前苹果连接上后按任何按键均无反应(方向键,音量大小,数字都试过),大多数情况是连接时提示“配对时间太长”而连不上。
苹果一旦连接上,如果断开蓝牙。再开通蓝牙。是无法自动连上。。
按目前情况,结合下面文档内容的提示。我估计是连接参数设置不符合苹果的配置要求所致,
因为手册DA14580_Keyboard_App_Guide.pdf里面第八节提示了下面的内容:

8.连接参数
连接参数留给主设备来设置。使用的参数如下
Windows 8和iOS7系统。
Windows 8 iOS7
连接间隔10ms 15ms
连接延迟23 # 4 #
连接监督超时时间2秒3秒
表3:Win8和iOS使用的连接参数
Windows 8接受蓝牙设备改变连接参数,而iOS7拒绝

但是这三个参区间数连接,连接延迟,连接超时监督从代码中找到一些疑似参数的部分。
但是相似的内容比较多。我还正在寻找真正修改的位置。

麻烦你帮我看看修改这三个参数的位置。项目时间紧迫。

关键词:
设备:
lianghuok2
离线
最后看到:2年7个月前
加入:2016-05-30 17
我找send_connection_upd到空白

我找到空白send_connection_upd_req (void)里面有这几个宏
申请- > params.intv_min = PREFERRED_CONN_INTERVAL_MIN;// N * 1.25ms
申请- > params.intv_max = PREFERRED_CONN_INTERVAL_MAX;// N * 1.25ms
申请- >参数。延迟= PREFERRED_CONN_LATENCY;// Conn跳过事件
申请- >参数。time_out = PREFERRED_CONN_TIMEOUT;// N * 10ms

改成这样子了。也不对
#define PREFERRED_CONN_INTERVAL_MIN (12) //N * 1.25ms
#define PREFERRED_CONN_INTERVAL_MAX (12) //N * 1.25ms
#定义PREFERRED_CONN_LATENCY (4)
#define PREFERRED_CONN_TIMEOUT (300) //N * 10ms

app_kbd_fsm.c里面很多可以修改的参数。但是就不清楚是否可以修改。

Gongyu_Dialog
离线
最后看到:2周3小时前
加入:2016-04-27 07:07
函数就是这个函数,但是不知道你是吧它放在哪里的。

函数就是这个函数,但是不知道你是吧它放在哪里的。
一般都是放在app_connection_func函数里面的app_security_start()之后,用
app_timer_set (APP_CONN_UDPATE_TIMER TASK_APP 10000) / /时间单位10毫秒,也就是延迟10年代

在app_default_state数组里面加上定时器处理的函数。在app_conn_timer_handler里面去调用send_connection_upd_req
(ke_msg_func_t) app_conn_timer_handler}, {APP_CONN_UDPATE_TIMER

lianghuok2
离线
最后看到:2年7个月前
加入:2016-05-30 17
1)你的代码是第几版的?我的代码是KBD 3.10.6

1)你的代码是第几版的?我的代码是KBD 3.10.6。里面有点不一样的地方就是app_hid_timer_handler函数来调用app_state_update (TIMER_EXPIRED_EVT);里面的send_connection_upd_req。
其余大部分都几乎一样的。

2)从代码看来,连接间隙、连接延迟,连接超时监督应该是链接到手机后,才传给ios的。不过其实我上面的问题中,可能是因为没有正确连接才无法发送键值过去。。。因为大多数情况是连接时提示“配对时间太长”而连不上。所以可能都没到达要传参数的阶段。就连不上了。这个不知道什么原因?

Gongyu_Dialog
离线
最后看到:2周3小时前
加入:2016-04-27 07:07
代码是一样的版本。更新参数都是在连接之后才做的

代码是一样的版本。更新参数都是在连接之后才做的