微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541断开连接后再也连接不上了

CC2541断开连接后再也连接不上了

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

各位大侠:

        请教一下

接收到一次数据就更改一下SNV,发现断开连接后再也连接不上了

代码如下:

#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     8

#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     8

uint8 TestData;

case SIMPLEPROFILE_CHAR6:

//获取连接句柄
//GAPRole_GetParameter(GAPROLE_CONNHANDLE, &nGUA_ConnHandle);
SimpleProfile_GetParameter( SIMPLEPROFILE_CHAR6, newChar6Value, &returnBytes );
if(returnBytes > 0)
{

if(TestData == 4)
TestData = 6;
else
TestData = 4;
osal_snv_write(0x93,1,&TestData);
SimpleProfile_SetParameter( SIMPLEPROFILE_CHAR6, returnBytes, newChar6Value );
}

break;

用安卓手机不断发送数据,然后再手机端断开蓝牙,出现的情况如下:

1、安卓7.0 + 协议栈 1.4.2.2  + TestData 是全局变量       :断开蓝牙后再也连接不上了

2、安卓7.0 + 协议栈 1.4.2.2  + TestData 是局部变量       :断开蓝牙后再连接,正常 

3、安卓5.1 + 协议栈 1.4.2.2 :断开蓝牙后再连接,正常 

4、协议栈 1.3.2    :断开蓝牙后再连接,正常 

就第一个情况断开蓝牙后,再也连接不上了,哪怕重启cc2541一样连接不上;必须重新烧一次程序也可以连接上

TestData 作为全局变量,我定义在simpleBLEPeripheral.c的最前面

TestData 作为局部变量,我定义在前面的大括号内。

各位大侠,请问知道是什么原因吗

谢谢!

补充一下:

           安卓7.0连接不上,显示没找到服务;CC2541已可以进入”case GAPROLE_CONNECTED:”这里

安卓7.0连接不上后,改用安卓5.1是可以连接的

连接不上的时候,广播有正常吧?

已可以进入”case GAPROLE_CONNECTED证明已经连接了,那你的问题是不是应该改成device发不出服务信息,还有一种可能是发出一部分服务信息,就自然断开连接了,不知道你是哪种情况,一可以抓包看看,二可以断点调试。看看断开连接程序停在哪里

我遇到了同样问题,我写的字节多一点,一次是16个字节,写了几十次之后,断开蓝牙就连接不上了7.0安卓手机,5.0等安卓手机可以连接通讯;我用的1.4.2.2协议栈;我用局部变量数组还是全局数组都是一样的效果

你好 我的设备一开始可以连上 后来连不上了  用sniffer抓包  没有广播,这种现象出现的原因不确定,多个设备,有的充完电会出现这种情况,但我试了其他设备,充完电后一样正常连接,把电池拿下来再焊上去,又好了,但连不上不发广播的这种按键什么的都正常使用,现在不确定是程序的原因还是硬件的问题,协议栈是1.4.2.

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

网站地图

Top