我用一主连接两个从机模块,交替进行工作,通信完成之后就断开,但是工作一段时间之后发现,主设备无法发现从设备了,我从设备设置一直可以发现的模式,请问ti的员工知道这是怎么回事吗?什么时候会进入case GAP_DEVICE_INFO_EVENT:?求解答
Yan:
zhikuan,
收到从设备的广播包之后就会到 case GAP_DEVICE_INFO_EVENT 中。
关于你的问题,首先,你可以先用packet sniffer看看从设备广播是否正常,另外,在主设备端,看看发生问题的时候,代码停在哪里了?可以用debug 模式下看看,用IAR 按暂停。
zhikuan kang:
回复 Yan:
请问连接函数返回值是bleNoResources,导致连接不上其他模块,我该怎么解决一下?
Yan:
回复 zhikuan kang:
zhikuan,
这个可能是你重复连接两个设备,由于资源没有释放及时,导致了这个错误。
比如说NV 里面的配对信息数目等等。
zhikuan kang:
回复 Yan:
hi,yan
我一共是四个模块,两个一直连接,剩余两个交替工作我觉得是一个资源没有完全释放,另一个就发起了连接指令,我断开连接调用的是GAPCentralRole_TerminateLink(rainType->attr.techBLEConnHandle);,,,,请问有没有更好更快的释放资源的方法呢?
zhikuan kang:
回复 zhikuan kang:
再问您一下,是不是连接和断开要访问共同的资源呢?
Yan:
回复 zhikuan kang:
zhikuan,
你这是正确的断开连接方法:)
CC254x 作为master,由于本身资源非常有限,不乱倒腾连来断去的话,稳定同时连3个设备已经很不错了。
所以,你可以这样尝试一下:
1,增大和每个设备的connection interval试试。
2, 交替工作的两个设备,断开连接后,稍微隔长一点时间再连接另外一个设备试试看?
zhikuan kang:
回复 Yan:
hi,YAN
您好,我想问一下,CC2540有设置通信信道德功能(或者类似功能)是吧,我听说是可以的,那么怎么设置呢?有没有相关文档或者例子,求指导,我需要同时打开6个从模块,但是只连接其中指定的三个,我想通过他们用不同的信道来进行区分这几个模块从而只连接其中的三个,您看可以吗?