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.

[参考译文] CC2640R2L:我需要知道蓝牙配对密码中是否可以使用4位数字、而不是6位数字

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1229292/cc2640r2l-i-needed-to-know-if-it-is-possible-to-have-4-digits-instead-of-6-in-the-bluetooth-pairing-password

器件型号:CC2640R2L
主题中讨论的其他器件:CC2640、、 UNIFLASH

我需要知道蓝牙配对密码中是否可以使用4位而不是6位。

当我发送 Android 与 CC2640配对时、它会打开一个字段、我可以在其中输入密码、但建议输入密码0000或1234、为了避免用户混淆、我希望将初始密码1234标准化。

有可能做到这一点吗?

我在"simple_peripheral"示例中使用 CC2640R2L

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

    您好!

    感谢您与我们联系。 密码功能由 simple_peripheral.c 文件中的 SimplePeripheral_processPasscode ()函数处理。 默认情况下、此功能使用存储在 B_APP_DEFAULT_PASSWORD 定义中的预设密码。 可以更改此功能以使用不同的定义或具有硬编码值。  

    static void SimplePeripheral_processPasscode(uint8_t uiOutputs)
    {
      // This app uses a default passcode. A real-life scenario would handle all
      // pairing scenarios and likely generate this randomly.
      uint32_t passcode = B_APP_DEFAULT_PASSCODE;
    
      // Display passcode to user
      if (uiOutputs != 0)
      {
        Display_print1(dispHandle, 4, 0, "Passcode: %d", passcode);
      }
    
      uint16_t connectionHandle;
      GAPRole_GetParameter(GAPROLE_CONNHANDLE, &connectionHandle);
    
      // Send passcode response
      GAPBondMgr_PasscodeRsp(connectionHandle, SUCCESS, passcode);
    }

    在实际用例中、此函数应修改为使用默认密码以外的内容、并且可能会实现随机生成的密码。

    此致、

    1月

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

    大家好、感谢您花时间帮助我。
    我已经通过将 B_APP_DEFAULT_PASSWORD 更改为1234进行了测试、但配对时显示错误的密码消息

    下面是我的代码示例:

    simple_peripheral.c

    bcomdef.h

    Android

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

    您好!

    您是否可以尝试打印密码(通过取消注释掉 display_printf 行(以确保我们正确更新密码?  

    此致、

    1月

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

    在我的项目中,我不得不停用 Display,但我通过将固定值直接放在"GAPBondMgr_PasscodeRsp"函数中进行了测试,也发生了同样的问题。

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

    您好!

    您是否可以在调试视图中运行此程序,并在 GAPRole_GetParameter ()设置断点,进入 GAPRole_GetParameter ()函数并验证使用和比较了什么密码? 您是否具有低功耗蓝牙监听器的访问权限? 如果是、那么我认为获取无线传输中发生的情况的数据包捕获在这里可能会有所帮助。

    此致、

    1月

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

    在此处进行测试时,产生了疑问,这个 SimplePeripheral_processPasscode ()函数在它请求配对时即被执行,甚至在 Android 上写入密码之前也是如此。

    DBUG 第1部分:

    DBUG 第 2部分:

    DBUG 第3部分: gapbondmgr.c

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

    尊敬的 Gabriel:

    该测试是使用以前绑定的器件完成的吗? 是否可以尝试在重试之前、通过 Uniflash 整体擦除 CC2640R2以及擦除中央器件上的任何键合?

    此致、

    1月