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.
我用“connectle ...”连接第三方ble设备,然后用“DiscoverHRS”找到了ble设备上的心率服务,之后用“ConfigureRemoteHRS 1”配置通知服务,现在可以正常收到ble设备上的心率数据,但是过两三分钟后,连接就自动断开了,需要重新执行上述流程,如此反复。
请教各位,问题出在哪里呢?是否应该修改某些参数?谢谢。
不是的,断链时提示的错误码是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->连接断开”这个过程,很是奇怪。
有几个问题
1. SPPLEDemo 没有DiscoverHRS, ConfigureRemoteHRS命令参数, 请问您是如何连接的
2. 心率腕表应该使用的是HRP的Peripheral协议需要和HRP的Central设备连接
3. SPPLEDemo一般是跑在Peripheral设备上,根据你的描述,cc256x是连接腕表,也就是说cc256x需要做central设备
DiscoverHRS和ConfigureRemoteHRS命令是从HRSDemo里面移植过来的。
我需要同时与ble设备和经典蓝牙(spp)连接,因此以SPPLEDemo为主,加进了HRSDemo里面的几个函数。
我试过用两个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呢?