This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BLE cc2541与pad连接

Other Parts Discussed in Thread: CC2541

我在用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,

    请标记问题已解决,谢谢 :)