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.

一个奇怪的问题



enum
{
  BLE_STATE_IDLE =8,
  BLE_STATE_CONNECTED,
};

static  uint8 simpleBLEState = BLE_STATE_IDLE;

。。。

判断状态:

广播的话simpleBLEState = BLE_STATE_IDLE;

链接的话simpleBLEState =  BLE_STATE_CONNECTED;

没有其他复赋值的地方了,我的显示是connected,状态也确实是已连接。可是我把simpleBLEState的值打出来后是BLE_STATE_IDLE的值。不知道哪里错了

1、连接赋值后我把值打出来了,这时没错,是BLE_STATE_CONNECTED

2、广播那个赋值确实只负了一次,我定义变量试了。

后面再打印状态就是BLE_STATE_IDLE了,而实际状态确实是连接的。求解??????

 

  • Hi jason

        连接是个过程,不是瞬间一条语句就能连接上的。

        检查下状态变量是在哪里赋值,最好是放在状态改变的回调函数里,而不是在启动连接的时候。

  • static void peripheralStateNotificationCB( gaprole_States_t newState )

    {

        case GAPROLE_ADVERTISING:
          {
             simpleBLEState = BLE_STATE_IDLE;
          }
          break;

        case GAPROLE_CONNECTED:
          {
            
            simpleBLEState = BLE_STATE_CONNECTED;
          }
          break;

    }

    我就是这么写的啊,simpleBLEState 除了一上来的初始化也只有在这两个地方进行负值了,连接过程确实建立了,主从机可以通信,不过状态值打出来就是不对,源码我发了,麻烦帮我看下。

  • 看不出什么错误。会不会时打印的问题!

    看看打印出来的数据是什么?