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.

[参考译文] CC2650STK:CC2650随机发生器问题

Guru**** 657500 points
Other Parts Discussed in Thread: CC2650, BLE-STACK, CC2650STK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1228864/cc2650stk-cc2650-random-generator-issues

器件型号:CC2650STK
主题中讨论的其他器件:CC2650BLE-STACK

您好!

我将 CC2650与 SensorTag 参考代码配合使用。

我需要在用户每次按下"RIGHT"按钮时生成随机数。

我每次都会在 SensorTagKeys_processKeyRight ()上使用以下代码:

    TRNGCC26XX_Params trngParams;
    TRNGCC26XX_Handle trngHandle;
    int8_t trngStatusFlag;
    uint32_t trngNum1;

    TRNGCC26XX_init();      // Init driver
    trngHandle = TRNGCC26XX_open(0);    // Open TRNG peripheral
    TRNGCC26XX_Params_init(&trngParams);        // Initialize parameters
    trngNum1 = TRNGCC26XX_getNumber(trngHandle, &trngParams, &trngStatusFlag);      // Generate a random number.  Use optional status flag
    if (trngStatusFlag == TRNGCC26XX_STATUS_SUCCESS)        // Check if status was okay
    {
      // Random number was generated successfully
    }
    TRNGCC26XX_close(trngHandle);

我可以获得随机数、但在第一次按下按钮后、我无法再进入配对模式。

有什么建议吗?

谢谢。

Itay

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

    您好、Itay、

    BLE-Stack 已在 CC2650STK 示例中使用了 TRNG、如 ble_user_config.c/h 文件所示。  因此、您将需要打开 TRNG TI 驱动程序的新实例(即使用零以外的索引)。 这是一个 常见的 E2E 问题 、因此您也可以参考其他解决方案。

    此致、
    Ryan

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

    您好、Ryan、

    感谢您的答复。

    我将索引更改为1、但仍然无法正常工作。
     TRNGCC26XX_OPEN 函数未使用索引:

    /*
     *  ======== TRNGCC26XX_open ========
     */
    TRNGCC26XX_Handle TRNGCC26XX_open(uint8_t index)
    {
      TRNGCC26XX_Handle handle;
      uint16_t hwiKey;
    
      // Get handle
      handle  = (TRNGCC26XX_Handle)&(TRNGCC26XX_config[TRNGCC26XXX_PERIPHERAL_0_INDEX]);
    
      // Disable hardware interrupts.
      hwiKey  = (uint16_t) Hwi_disable();
    
      // Open TRNG.
      openTRNG((TRNGCC26XX_Handle)(&(TRNGCC26XX_config[TRNGCC26XXX_PERIPHERAL_0_INDEX])));
    
      // Enable hardware interrupts.
      Hwi_restore(hwiKey);
    
      return (handle);
    }
    


    您能提供建议吗?

    谢谢。

    Itay

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

    感谢您指出这一点。  CC26X0的旧版 TI 驱动程序似乎不会考虑多个实例。  在相关的 E2E 主题中提到了各种解决方案。  您是否考虑过使用 随机模式 而不是 TRNG?

    此致、
    Ryan

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

    您好!

    是否有使用  Random_getNumber ()的示例代码?

    谢谢。

    Itay

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

    不是从 ble_sdk_2_02_07_06 下载的、因此、您可以再次引用 类似的 E2E 线程、 或使用 TI 驱动程序文档中提供的示例。

    此致、
    Ryan