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:CC2340R5 Launchpad

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1428046/cc2340r5-cc2340r5-launchpad

器件型号:CC2340R5
主题中讨论的其他器件:SysConfig

工具与软件:

您好、我想 读取我的器件的 BD 地址并将其附加到 attDeviceName 并开始广播、但我无法执行此操作、因为 attDeviceName 被称为 uint8_t、我无法更改 ti_ble_config.c、并且无法使用任何函数(例如 snprintf)将地址附加到 attDeviceName。  

如果我是 TI 的新手、请帮我。

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

    您好!  

    感谢您联系我们。  

    您可以在此处找到类似的主题: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1254208/cc2340r5-can-mac-address-be-read-within-codebase 

    我希望这将有所帮助、

    此致、  

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

    您好!

    我的用例是不同的。 我想通过 SysConfig 更改我要设置的 attDeviceName、并将器件的 BD 地址附加到 attDeviceName 并进行广播。 请帮我、因为我无法弄清楚如何做到这一点

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

    您好!

    这只是为了获得实际广播本身中的地址吗? 如果是这样、那么在运行时将地址附加到广播数据可能会更容易。 这适合您的用例吗? 否则、另一种方法是在设置 attDeviceName 并在引导早期附加它之前获取地址。

    此致、

    1月

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

    您好!

    在 SysConfig 中、我将 attDeviceName 定义为 BLE_。 然后、在使用 BlEAppUtil_init API 初始化堆栈之前、我想提取设备地址并将其附加到 attDeviceName BLE_中、然后将其传递给 BLEAppUtil_init API 将使用的 appMainParams。 我定义了一个函数、我在其中使用以下代码行

    uint8_t * devAddr = GAP_GetDevAddress( true );然后执行一个 memcpy 以将地址放在 BLE_ attDeviceName 之后。 然后、我在调用栈初始化 API 之前调用 appMain 中的函数、但没有发生任何情况。 我无法理解出了什么问题、因为没有错误。

    我请您提供一个示例、说明如何操作、以便我掌握使用方法

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

    您好!

    如果没有误码,BLEAddress(C)(BLE)函数需要初始化 Gap_Get 堆栈才能正常工作。 如果您在初始化栈后移动 API 调用、它是否有效?

    此致、

    1月

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

    您好!

    感谢您提供信息。 目前在 CCS 方面面临一些问题。 我将尝试这种方法并更新您。 同时、如果您能尝试并告诉我它是否有效、它将非常有帮助。

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

    您好!

    默认情况下、basic_ble 示例会在堆栈初始化后调用该 API:

    此致、

    1月

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

    我在编写此函数时、已在 attDeviceName 中附加了地址、然后在初始化栈后调用它、但没有任何 变化。 无论我在 SysConfig 中定义的名称是什么、都在进行广播。 没有发生其他情况

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

    您好!

    根据您编写的代码、您似乎要保留 attDeviceName 并在末尾添加地址 您是否在 SysConfig 中的 attDeviceName 变量中添加了一些虚值? 可表示为:

    attDeviceName ="myDeviceName=123456"或沿这些行的其他内容。

    我建议这样做、以确保不会超出分配给该变量的内存的范围。 BLEAppUtil_convertBdAddr2Str 假设您为其提供一个长度为6的数组、该数组仅包含地址的十六进制值。 因此我不希望该函数能够像您那样正常工作。

    我建议添加一个自定义函数、该函数获取地址数组、将其转换为字符串、然后将其附加到 attDeviceName (在确保 attDeviceName 字符串足够长、能够容纳名称+地址之后)。 之后、尝试使用 MenuModule_printf()来打印新附加的字符串、以查看我们是否已正确更新它。

    此致、

    1月

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

    您好!

    我能够通过更新 scanResDATA1使其成功运行

    uint8_t * addr = NULL;
    Addr = GAP_GetDevAddress (true);
    uint8_t num = 6;
    char * arr = BLEAppUtil_convertBdAddr2Str (addr);
    memcpy (&scanResData1[8]、&arr[8]、num);
    advSetInitParamsSet_1.scanRespData = scanResData1;

    下面的代码行帮助我将地址更新为 attDeviceName、并且它按照我的预期工作。

    这样做的目的是、我们将在生产中拥有许多器件、因此我们需要基于每个器件的 BT 地址的唯一名称、这就是我们为什么要编写代码、以便每个器件都具有唯一名称、而不是许多生产硬件的一个名称

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

    我的下一个问题是、我要设置定制的128 nit 服务和特性、而不是在广播数据中公开它。 我将注册它、且它仅在连接后才能由中心设备查看。

    给出的示例显示我只能在 SysConfig 广播参数中进行更新。 请求帮助我了解如何以及哪个 API 将帮助我注册未在广告中公开的自定义服务?

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

    您好!

    很高兴听到您能够解决此问题! 感谢您分享解决方案! 您应该能够通过 SysConfig 手动设置广播中显示的 UUID、这不需要与示例使用的实际服务相对应。 如果您不希望广播特定服务 UUID、请勿将其添加到 SysConfig 中广播有效载荷的 UUID 部分。

    此致、

    1月

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

    您好!

    如果我未在 SysConfig 的广播有效载荷中添加 UUID、那么我应在何处以及如何定义它?

    您能举几个例子吗?

    我想使用 SERVICE_REGISTER API 定义服务和特性并注册该服务  

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

    您好!

    我有点困惑。 是否要将 UUID 添加到广播有效载荷? 如果是、则可以通过 SysConfig 执行此操作。 如果您不想添加、则可以将其留空。 根据您实施的配置文件/服务、您不需要同时广播该配置文件/服务的 UUID。

    此致、

    1月

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

    您好!  

    一切都正常。

    如果我必须定义多个主服务、我是否可以将其添加到一个属性表中、还是必须为其创建单独的属性表?  

    目前、我在一个属性表中添加了2个主服务、但中央服务器未发现第二个服务。

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

    您好!

    明白了、感谢您的澄清。 您有两种选择。 您可以将全部添加到单个表或将其作为单独的表进行使用。 您能否使用 SimpleLink Connect 应用连接到 CC2340R5、并检查是否这两个服务都显示在那里?

    此致、

    1月

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

    您好!

    它现在工作正常。 在声明中做了一些修改。

    我还有一个疑问。

    BLEAppUtil_init (App_Stack itDoneHandler,
    &appMainParams,&appMainPeriCentParams)-调用 stackInitDoneHandler、我们将在其中 start_Peripheral()、start_Connection ()、start_Pairing ()、start_GATT()。

    我的问题是,我想在调用 bleapputil_init ()后,一一一启用所有单独的功能。  

    1.首先执行堆栈初始化

    2.然后我执行 start_Peripheral()-从不同的函数定义和调用

    3.然后我做 start_connection()

    但我无法理解如何做。 如果我单独定义和调用这些函数并在 bleapputil_init 之后调用、表示该函数无效。 是否有办法从 stackInitToneHandler 回调解耦这些初始化并单独调用所有内容?

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

    您好!

    很高兴听到您能够解决此问题! 您应该能够单独调用 start()函数。 但是、必须确保从 BLE 任务上下文中调用它们。 您应该能够使用 bleapputil_invoke 函数来确保从正确的上下文调用这些函数。

    此致、

    1月

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

    您好!

    我像这样使用过、但没有得到任何结果。

    请举一个例子。

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

    您好!

    感谢您的澄清。 我猜是在 BLEAppUtil_init ()完成之前调用 enableAdvertisement ()函数。 您是否可以尝试 在 App_Stack 35itDoneHandler 的末尾将调用添加到 enableAdvertisement()? 或者在 stackInit ()之后在信标上可能挂起并在 App_Stack itschafeHandler 的末尾张贴信标?

    此致、

    1月

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

    您好!

    它的工作系统。

    感谢您的支持

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

    您好 Jan:

    我已经定义了2个128位服务、将它们放置在1个属性表中并注册了该服务。 但是、从电话到电话、服务发现各不相同。 我有一个加10专业在只有一个服务被发现。 在 iPhone 中、两种服务都被发现、在其他 Android 手机中、两种服务都被发现。 在一个三星只有第一个服务被发现? 为什么会发生这种变化? 请提供帮助。 但是、如果我在2个不同的表中定义服务 、则它可以正常工作、但我只希望它在一个表中工作。

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

    您好、Jan:

    此外、我想拥有4个以上的特征、但在 SysConfig 中、它显示 NV 在每个键最多只能存储4个特征。 在这种情况下、我应该怎么做?

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

    您好!

    出现差异可能是由于 OnePlus 设备出现问题、因为其他两个设备上未出现此问题。 您能否确认 OnePlus 手机使用的 Android 版本以及三星手机? 你应该能有超过4个特征,但如果我没有错误,他们的价值不会保存与债券断开后.

    此致、

    1月

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

    您好、Jan:

    但是,如果我没有错误,他们的价值不会保存与绑定后断开:你可以详细说明这一声明,因为我的应用程序需要超过4个特征的整个生命周期。  

    此外,为什么 Android 版本会在发现服务的不同方面发挥作用? 我需要在堆栈中修改什么内容吗?

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

    您好、Jan:

    我需要您的支持、以便在一个属性表中添加2 128个服务、然后对其进行注册并让我知道发生了什么情况。 此外,这个 API 做了什么 GATT3074 App_Add ()? 我使用它来添加第二个服务、但中央没有发现它

    请帮帮我

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

    您好!

    过去我们已经发现、特定版本上特定 Android 版本在特定手机上的行为在 BLE 连接期间可能与预期不完全一致、这就是了解正在使用哪个 Android 设备可能有帮助的原因。 我认为绑定的最大特性将只是发生断开时在本地保存的特性数。 您仍然可以拥有超过该数字的数字、但一旦连接、您需要重新读取它们、或者将它们保存在 GapBondMgr 之外。

    应该可以提供多种服务。 您能否参考以下 GATT 表生成器? 提供的生成器适用于 F2 SDK、而不是 F3 SDK、但绝大多数代码应该可以重复使用。

    https://dev.ti.com/tirex/content/simplelink_academy_cc13xx_cc26xxsdk_6_40_00_00/modules/ble5stack/ble_01_custom_profile/ble_01_custom_profile.html#example-service-generator

    您是否可以尝试创建单个服务并查看您的代码是否与输出 提供的内容匹配?

    此致、

    1月

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

    您好、Jan:

    我正在使用 Android 版本14和 Oneplus 10 pro 5G

    我的问题是、我想在一个属性表中添加2个128位服务。 目前、我已在2个属性表中添加了2个主服务、我将单独进行注册。 该部件能够正常工作。  

    当我在一个属性表中添加2个主服务时、第二个服务未注册。 所有示例在1个属性表中仅显示一个服务。

    另外、我需要 将5个特性保存在接合表中、并且贯穿整个应用。

    请说明为什么对仅将4个特性放入 接合表有限制?

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

    您好!

    我懂了。  我认为我这边有些混乱、为此我道歉。 可以将某个服务保留在其单独的属性表中。 我相信我们的大多数示例都在自己的表格中实现每个服务。 例如、简单 GATT 配置文件和 OAD 服务都位于各自的表中。 您希望所有内容都集中在单个表中有什么特殊原因吗?

    为清楚起见、最大特性数是指最大特性配置数:

    这是指每个特征的通知/指示设置、因此您可以具有五个或更多特征、但可以保存并在连接之间持续的特征配置是其中四个特征的。 您不受此限制的特性量。

    此致、

    1月

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

    您好、Jan:

    非常感谢您提供的信息。 根据您的建议、我将在自己的表格中使用2个服务。  

    非常感谢 Jan.的澄清 我将为一个服务添加更多的特征并且只为其设置4个通知/指示配置并查看结果。 如果我遇到问题,会让你 知道.

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

    谢谢 Jan、

    现在一切都正常。 最初我设置通知属性的5个特征,这就是为什么它的行为是这样的。 我更改了它、现在它开始工作了。

    非常感谢 Jan

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

    您好!

    没问题! 很高兴我们能够一起解决这个问题! 如果您遇到任何进一步的问题或有任何其他问题、请随时打开新主题、我们很乐意提供帮助!

    此致、

    1月