微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540连接自动断开

CC2540连接自动断开

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

大家好,

    现遇到一个问题,当在从模块程序中加入一些硬延时,比如在ProcessGATTMsg或者performPeriodicTask中加入一些

void HalDelayMs(uint16 MilliSecs)
{
  uint16 uscount;
  while(MilliSecs--)
  {
    for(uscount=0;uscount<1000;uscount++)
    {
      /* 32 NOPs == 1 usecs */
      asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
      asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
      asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
      asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
      asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
      asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
      asm("nop"); asm("nop");   
    }
  }
}

系统就会连不上,或者连上自后又会随机自动断开,当连接多个从模块时更严重,请问有什么解决办法?谢谢!

读某些传感器数据可能会耗费较长时间,此时为了避免上述问题怎么处理比较好?目前用的是simplebleperipheral模板,在应用层另外添加一个task来处理?有人遇到类似的问题吗?谢谢!

是啊  本人同求  连三个从设备  一通信就断,不知道为啥?请问你解决了吗?

请问您的connection intervel设的是多少?另外peripheral的连接参数会更行新吗?central设备使用的是什么?

连接间隔是最小80ms ,最大1000ms,参数不更新   主机是蓝牙4.0(CC2540)发板,谢谢

请问您是每次都自动断开吗?

我今天在CC2540EM(central)上连接了三个CC2540 mini keyfob(peripheral), 使用peripheral默认的设置,多数情况是稳定连接的,且parameter update是打开的。

#define DEFAULT_MIN_CONN_INTERVAL     0x0006  // 100 milliseconds
#define DEFAULT_MAX_CONN_INTERVAL     0x0C80  // 4 seconds

楼主没有使用os吧?

在bluetopia中,任务调度其实是单线程,没有多线程机制。你使用上述方式延时,会导致协议栈得不到及时运行,错过对端蓝牙的握手消息,对端认为你的设备超时了,会主动断开连接。

解决方法是让你的任务周期运行,根据周期运行计数来实现延时。

例如设定一个静态变量,每运行一次加1,当累加到某一数值时,就得到了“累加数x周期”的延时,根据不同延时,可以执行不同操作,并在某个时候让静态变量清零,然后重新开始该过程。

请问楼主现在你可以最多和几个Peripheral同时稳定通信?通信速率是多少?谢谢

我的也会出现在别的地方如果时间处理过长,会断开的现象。用的是ios端连接的。

昨天我的开发版也出现自动断开现象,主要是发生在ios7上,但今天有奇怪得好了……

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

网站地图

Top