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.

咨询Bluetopia连接ble设备自动断链的问题,谢谢

Other Parts Discussed in Thread: MSP430F5438A

我用“connectle ...”连接第三方ble设备,然后用“DiscoverHRS”找到了ble设备上的心率服务,之后用“ConfigureRemoteHRS 1”配置通知服务,现在可以正常收到ble设备上的心率数据,但是过两三分钟后,连接就自动断开了,需要重新执行上述流程,如此反复。

请教各位,问题出在哪里呢?是否应该修改某些参数?谢谢。

  • 看看是不是timout断开的

  • 不是的,断链时提示的错误码是13,看了说明,应该是ble设备因为资源限制而断开了连接。

    但是我用手机连接该ble设备很正常,用的是下载的运动软件,能够一直采集心率。

  • 仔细观察了一下,大概一分钟多点就自动断链了,每次都如此,请问有啥办法解决吗?

  • 可能出现在连接的配置上 建议可以抓包看看连接的参数是否有不同

  • 我使用的是TI的MSP-EXP430F5438A开发板,代码是TI网站下载的CC256x_MSP430_Bluetopia_Basic_SPPLEDemo_APP。

    连接的心率腕表是迈欧的alpha,支持ble,不是spple。使用iphone5、三星note2等手机可以正常读取心率数据。

    但使用SPPLEDemo时,连接建立后,约一分钟多点即断开连接,断开之前,心率上报正常,这个腕表每秒钟上报一次心率。无论是否配置了心率上报,断开连接的时间都一样。

    因使用的是原始例子,未修改任何le连接参数。

    请各位专家多多指点哦,多谢多谢。

  • 查看断开连接的Reason,有时是0x08,(好像是认证不足),多数是0x13(对方关闭连接)和0x3E。

    其中0x08很少出现;

    前述每隔一分多钟就断开连接时,reason通常是0x13;

    有时候连接刚刚建立,我紧跟着发送discover命令,连接立即就断开了,此时reason是0x3E,之后这种情况会持续二三十次,就是不断重复“连接建立->discover->连接断开”这个过程,很是奇怪。

  • DiscoverHRS和ConfigureRemoteHRS命令是从HRSDemo里面移植过来的。

  • 有几个问题

    1. SPPLEDemo 没有DiscoverHRS, ConfigureRemoteHRS命令参数, 请问您是如何连接的

    2. 心率腕表应该使用的是HRP的Peripheral协议需要和HRP的Central设备连接

    3. SPPLEDemo一般是跑在Peripheral设备上,根据你的描述,cc256x是连接腕表,也就是说cc256x需要做central设备

  • DiscoverHRS和ConfigureRemoteHRS命令是从HRSDemo里面移植过来的。

    我需要同时与ble设备和经典蓝牙(spp)连接,因此以SPPLEDemo为主,加进了HRSDemo里面的几个函数。

  • 请问您如果用HRPDemo和设备连是否会出现断链的情况?

  • HRPDemo也试过的,也会断链,现象一致。

  • 我试过用两个MSP430F5438A 都跑HRPDemo 相互连接并不会断开,所以有可能跟连接参数有关,如果有抓包工具可以抓包看一下设备和iphone连接的时候的数据包,对比尝试修改如下代码参数

     /* Initialize the connection parameters.                    */
                ConnectionParameters.Connection_Interval_Min    = 50;
                ConnectionParameters.Connection_Interval_Max    = 200;
                ConnectionParameters.Minimum_Connection_Length  = 0;
                ConnectionParameters.Maximum_Connection_Length  = 10000;
                ConnectionParameters.Slave_Latency              = 0;
                ConnectionParameters.Supervision_Timeout        = 20000;

                /* Everything appears correct, go ahead and attempt to make */
                /* the connection.                                          */
                Result = GAP_LE_Create_Connection(BluetoothStackID, 100, 100, Result?fpNoFilter:fpWhiteList, Address_Type, Result?&BD_ADDR:NULL, latPublic, &ConnectionParameters, GAP_LE_Event_Callback, 0);

     

  • 尝试了很多参数,连接断开的现象还是依旧。

    后来想了一个办法:用开发板来模拟心率腕表,让iphone来连接该腕表,这样在开发板上能否看到iphone发过来的参数呢?

    如果能,应该跟踪哪个事件中的哪个参数?谢谢。

    补充:心率腕表的地址类型是Random类型,不是连接函数使用的Public类型,这个地方已修改为Random,不知是否有关系。

    另:TI网站最近下载的SPPLEDemoApp中使用的ble版本怎么看?是1.2.1还是1.3呢?

x 出现错误。请重试或与管理员联系。