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.

2640连接参数更新无效

请问sniffer抓包的这些数据代表什么意思呢?因为设备连接上以后,每隔30ms就出现这样的数据,改了最大最小连接间隔时间还是一样,这么频繁的数据传送,会导致功耗一直下不来。

连接上以后,为了确认是否更新了连接参数,跟踪程序,确认已经执行到了gapRole_startConnUpdate(GAPROLE_NO_ACTION,&gapRole_updateConnParams);这个函数,但是抓包的结果依然如下:

  • 请问您的广播通道是如何设置的呢?

    #define GAP_ADVCHAN_37 0x01 //!< Advertisement Channel 37
    #define GAP_ADVCHAN_38 0x02 //!< Advertisement Channel 38
    #define GAP_ADVCHAN_39 0x04 //!< Advertisement Channel 39
    #define GAP_ADVCHAN_ALL (GAP_ADVCHAN_37 | GAP_ADVCHAN_38 | GAP_ADVCHAN_39) //!< All Advertisement Channels Enabled

    另外关于BLE Sniffer的使用,您可以参考

    http://processors.wiki.ti.com/index.php/BLE_sniffer_guide

  • 问题原因已经找到了,跟蓝牙这边设置的参数有关,IOS对连接间隔时间有限定,找到的资料如下:

    interval Max*(slave latency+1)<=2s
    interval min>=20ms
    interval min+20ms<=interval max
    slve latency<=4
    connsupervisiontimeout <= 6s
    interval max*(slave latency+1)*3 < connsupervisiontimeout

    根据IOS限制,监督超时的时间不能超过6秒,而simpleperipheral中,默认设置的是10秒,超过了IOS限定,所以IOS拒绝接受更新请求。

    不过有一点不明白的是,TI官方应该知道这些限制,但是从254x到264x,所有的例程中,这个默认设定的值都是10秒钟,而为什么不改过来

  • 因为这个只是IOS的标准,并不是通用标准。