BLE cc2541与pad连接
我在用CC2541与pad的apk进行连接时,BLE刚连上就异常断开,用抓包器得的数据见附件,请问用可以通过修改2541的配置来解决吗?如何解决?
谢谢!
jianlong,
从包看,master一直在向slave 请求feature request, 且一直重发请求,因为slave并没有任何回复。 pad是master 吧?
从connection interval 来看,是7.5ms,非常短,极限值,并且一连上第一个包就发feature request请求,直到超时断开。
pad端是android 4.3/4.4的吗?pad是哪款? nexus 7 还是其他?能知道芯片产商吗?
最好能修改一下连接时候的connection interval, 改成长点试试, 20ms以上。
Hi,Yan
我用的是nexus 7,你说的connection interval 设置是怎么设置的?我在CC2541上设置过,但是不起作用,同时用另一个CC2541模拟apk,可以正常通信.
jianlong,
很奇怪。我以前试过nexus 7 android 4.4 , 没遇到过这个问题。
2541上设置是不会起任何作用的,2541 作为外设的话,只能请求主机去改变连接参数,但这需要在连接建立成功之后。
请确保你使用的是最新的1.4 版本协议栈。
另外,你最好能用BlueDroid 的源码,去协议栈里面找到建立连接的函数,修改一下参数就可以。源码应该是开放的,而且修改起来应该不会很难。
总之,很奇怪。
Hi,Yan,
2541的协议栈版本是1.3.2,现在项目开发到一半,换协议栈不太可能,这个会有影响吗?
jianlong,
应该不会有影响。
1.4 比 1.3.2 好很多,更加成熟。
另外,你试过和ipad或者iphone连接吗?有没有问题?或者其他android 手机,比如nexus 4,或者 5?
HI,Yan,
还有一个问题,我对android开发不太熟悉,请问apk上是如何设置的,调用的是哪个函数?
谢谢!
jianlong,
android 提供的GATT层 API 应该没有提供连接参数的修改,所以你得用BlueDroid源码去修改连接参数。
但是就像我之前说的,很是奇怪,我之前用nexus 7没有遇到这个问题。
试一下1.4版的协议栈吧。
Hi,Yan
公司现在就只在nexus 7,android 版本是4.3.
jianlong,
能不能升级到4.4, 并用TI的1.4版本的协议栈试一下?
Hi,Yan
忘说了一个条件,就是CC2541在POWER MANAGE设置成 关闭是可以正常通信的,把Power Manger 打开才出现通信问题。
Hi,Yan
应该是android系统的问题,android 4.3设置的BLE通信间隔时间是7.5ms,android 4.4的是48ms,android 版本升级后就没有问题了。
非常感谢!
jianlong,
非常好!
jianlong,
请标记问题已解决,谢谢 :)