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.

请问Zstack中事件可以嵌套么?

Other Parts Discussed in Thread: CC2530

1、系统事件SYS_EVENT_MSG中检测接收到无线数据后,调用函数MyApp_MessageMSGCB()处理

2、MyApp_MessageMSGCB()中,产生一个事件MYAPP_START_ADC_EVT去处理对应的数据

3、

if(events & MYAPP_START_ADC_EVT)
  {
    MyApp_AF_ADC_Value();
    return (events ^ MYAPP_START_ADC_EVT);
  }

4、MyApp_AF_ADC_Value()函数中进行ADC的采集,并AF发送给其他设备。

这样会导致此设备频繁的进入下面的代码,测试时串口频繁的打印“1_2”

 case BDB_COMMISSIONING_NWK_STEERING: //加入网络成功
      if(bdbCommissioningModeMsg->bdbCommissioningStatus == BDB_COMMISSIONING_SUCCESS)
      {
         HalUARTWrite(0,"1_2\r\n",strlen("1_2\r\n")); //回显错误类型。
      }
      else
      {
        osal_start_timerEx(zclGenericApp_TaskID, GENERICAPP_END_DEVICE_REJOIN_EVT, GENERICAPP_END_DEVICE_REJOIN_DELAY);
      }
    break;

现象1:其他不变,如果4处MyApp_AF_ADC_Value()函数不进行AF发送,就正常。只要 进行AF发送,就会导致上面的现象,频繁打印“1_2”,请问这是怎么回事?

现象2:其他不变,如果2处不是产生事件MYAPP_START_ADC_EVT,而是直接调用MyApp_AF_ADC_Value(),此时进行AF发送也正常。如果2处是产生事件MYAPP_START_ADC_EVT,仍会出现串口频繁打印“1_2”。

请问该怎么处理这个现象?