微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 咨询Bluetopia连接ble设备自动断链的问题,谢谢

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

时间:10-02 整理:3721RD 点击:

我用“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呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top