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.

[参考译文] CC2530:HAL_KEY_SW_6唤醒器件并扫描集线器

Guru**** 2539500 points
Other Parts Discussed in Thread: CC2530

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/566773/cc2530-hal_key_sw_6-wake-up-device-and-scan-for-hub

器件型号:CC2530

您好!

我想知道如何对 CC2530进行编程、以便在按下 HAL_KEY_SW_6时、如果集线器当前未连接、它将开始扫描集线器? 我正在使用 SampleLight 程序、并且已经有了该程序、因此当我按下 HAL_KEY_SW_6时、CC2530会被唤醒。 但是、如果集线器当前未连接到集线器、我只需要它来扫描集线器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您希望设备启动扫描网络以加入时,可以调用 ZDRApp_StartJoiningCycle ()。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在初始化中仅具有此值、但在按下 HAL_KEY_SW_6时不会出现此值。 如何使其在 HAL_KEY_SW_6被按下时执行 ZDUP_StartJoiningCycle ()、并且仅在 CC2530当前未连接到集线器的情况下才执行?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当 SW6被触发时、您仍然可以调用 ZDUP_StartJoiningCycle。 ZDUP_StartJoiningCycle 将检查器件是否处于 DEV_init 或 DEV_NWK_DISC 状态、以开始加入过程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在下面添加了代码、但是当我按下 SW6时、它不会开始扫描集线器。 我之前没有将 CC2530连接到集线器。

    if (键& HAL_KEY_SW_6)

    ZDUApp_StartJoiningCycle ();

    OSAL_STOP_timerEx (zclSampleLight_TaskID、turnoff 电机_EVT);
    OSAL_START_timerEx (zclSampleLight_TaskID、turnoff 电机_EVT、5000);
    RET=osal_start_timerEx (zclSampleLight_TaskID、turnoff _motor_EVT、5000);
    KeyPressCnt=0;
    OSAL_START_timerEx (zclSampleLight_TaskID、KEYHOLD_EVT、100);

    //立即切换本机指示灯
    zclSampleLight_OnOff = zclSampleLight_OnOff? light_off:light_on;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的帮助。 我漏掉了一些代码、并添加了其他代码、如下所示。 现在、当我按 SW6时、它会扫描集线器、然后在 zgDefaultRedjoinScan 值设置的时间后返回睡眠状态。

    if (键& HAL_KEY_SW_6)

    ZDUApp_ChangeState (DEV_NWK_DISC);
    //重新启动扫描以重新加入
    ZDUApp_StartJoiningCycle ();
    OSAL_STOP_timerEx (ZDAppTaskID、ZDO_REACK_BACKOFF);
    OSAL_START_timerEx (ZDAppTaskID、ZDO_INLOAD_BACKOFF、zgDefaultRedjoinScan);

    OSAL_STOP_timerEx (zclSampleLight_TaskID、turnoff 电机_EVT);
    OSAL_START_timerEx (zclSampleLight_TaskID、turnoff 电机_EVT、5000);
    RET=osal_start_timerEx (zclSampleLight_TaskID、turnoff _motor_EVT、5000);
    KeyPressCnt=0;
    OSAL_START_timerEx (zclSampleLight_TaskID、KEYHOLD_EVT、100);

    //立即切换本机指示灯
    zclSampleLight_OnOff = zclSampleLight_OnOff? light_off:light_on;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    欢迎您的到来、很高兴知道它现在可以正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    询问一下、如果 CC2530已连接到集线器、然后按 SW6、器件是否仍会查找集线器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 CC2530已连接到集线器、而您按 SW6、CC2530将不会查找集线器。