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.

[参考译文] CC2340R5:在读取 DevInfo_manufacturer_name 之后写入十六进制数据时丢失广播

Guru**** 2595770 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1357511/cc2340r5-lost-advertising-when-write-hex-data-after-read-devinfo_manufacturer_name

器件型号:CC2340R5

您好!

我遇到了一个奇怪的错误、我在广播后需要通过 UART 发送一 个字符串、但当我 sprintf 一个 Addr 十六进制时、我通过 UART 获得了预期信息、但 在 Simplelink Connect 中找不到广播信息。

我将 DevInfo_manufacturer_name 设置为以下

devAddr = GAP_GetDevAddress( TRUE );
status = DevInfo_setParameter( DEVINFO_MANUFACTURER_NAME, 6, devAddr );

这里是器件代码格式 UART 输出字符串。  我 可以在 Simplelink 中找到广告使用代码 A 连接,无法找到使用代码 B 的广告。即使我将 devAddr[i]更改为 const 值0x11,我们也找不到广告。

如何修复此错误?

代码 A

    DevInfo_getParameter(DEVINFO_MANUFACTURER_NAME, devAddr);
    DevInfo_getParameter(DEVINFO_FIRMWARE_REV, firmwareVer);
    usleep(5);
    sprintf(responseWithIds, "%s,VER:%s,Addr:\n", successResponse, firmwareVer);

代码 B

    DevInfo_getParameter(DEVINFO_MANUFACTURER_NAME, devAddr);
    DevInfo_getParameter(DEVINFO_FIRMWARE_REV, firmwareVer);
    usleep(5);
    sprintf(responseWithIds, "%s,ADDR:%02X%02X%02X%02X%02X%02X,VER:%s\n",
                             successResponse, devAddr[0], devAddr[1], devAddr[2], devAddr[3], devAddr[4], devAddr[5], firmwareVer);

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

    这是由 App_Stack skiDoneHandler 堆栈溢出造成的。