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:LP-EM-CC2340R5

Guru**** 2540720 points
Other Parts Discussed in Thread: LP-EM-CC2340R5

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1361581/cc2340r5-lp-em-cc2340r5

器件型号:CC2340R5

您好、TI 团队:

我一直在尝试实现一个非常简单的应用、使用 basic_ble 示例作为 LP-EM-CC2340R5的基准。 其目的是读取 GPIO、然后通过特征通知报告该引脚("0"或"1")的状态。 手机可以订阅该特征、因此它会获取不断更新的 GPIO 状态。 由于 based_ble 已经在使用特征4进行通知、我选择使用这个来输出 GPIO 状态。

我进行了下面所述的更改、我可以使用 LightBlue 应用读取特征4的值、但一旦我订阅以接收通知、电路板就会挂起、LightBlue 便会丢失通信内容、我需要从 CCS 复位以解除对电路板的阻断。 一个有趣的注意事项是、我只能使用 LightBlue 进行连接;TI SimpleLink Connect 可以找到该电路板、但无法与其连接。

我觉得我缺少一些非常基本的东西、请让我知道可能是什么。

本节介绍了我为实现该目的对 basic_ble 所做的更改。 我是 使用 SimpleLink 低功耗 F3版本 7.40.00.64

simple_gatt_profile.h
1.将服务和特征的 UUID 从0xFFFx 更改为0xAAAx、因此我可以区分 basic_ble 示例。
2、注释掉了所有提到特征5的内容、因为我不打算用到这些内容。

simple_gat_profile.c
1. simpleG454Props: Profile_Char 添加了'GATT_PROP_READ'属性,以便可以通过应用程序读取其值。
2. simpleGattProfile_attTbl:将 simpleG4574的权限 Profile_Char 从"0"替换为"Gatt_permit_read"、以便通过应用程序读取其值。
3. SimpleGattProfile_readAttrCB:添加了案例 SIMPLEGATTPROFILE_CHAR4_UUID,以便通过应用程序读取它。
4.注释掉了所有提到特征5的内容、因为我不打算用到这些内容。

APP_SIMPLE_GATT.c
1.注释掉了 SimpleGatt_notifyChar4函数以及其他函数中对它的每次调用。
2.添加了两个函数来报告 GPIO 的状态(顶部的"value"声明为 uint8_t 全局变量):

GPIO_high ()
{
值= 1;
SimpleGattProfile_SetParameter (SIMPLEGATTPROFILE_CHAR4、sizeof (uint8_t)、&value);

GPIO_low ()
{
值= 0;
SimpleGattProfile_SetParameter (SIMPLEGATTPROFILE_CHAR4、sizeof (uint8_t)、&value);

3、注释掉了所有提到特征5的内容、因为我不打算用到这些内容。

空.c
1.声明了外部函数 GPIO_high ()和 GPIO_low ()。
2. mainThread:添加了 GPIO_setConfig (CONFIG_GPIO_NotifyState、GPIO_CFG_IN_pu)。
3. mainThread:添加了决策任务来通知 while (1)循环中 GPIO 的高电平或低电平状态:

如果 ( GPIO_READ (CONFIG_GPIO_NotifyState))
GPIO_HIGH ();
否则
GPIO_LOW ();

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

    您好!

    我认为评估板暂停、因为在 BLE 任务上下文中不会调用 GPIO_HIGH 和 GPIO_LOW 函数。 您是否可以尝试使用 BLEAppUtil_invokeFunctionNoData 进行调用?

    此致、

    丹桂语

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

    您好、Tanguy、

    我将标题  bleapputil_api.h 添加到了 空.c 然后使用您的建议调用 GPIO 函数:

    如果  ( GPIO_READ (CONFIG_GPIO_NotifyState))
    BLEAppUtil_invokeFunctionNoData (GPIO_HIGH);
    否则
    BLEAppUtil_invokeFunctionNoData (GPIO_low);

    现在、我能够通过通知接收更新的 GPIO 值、甚至可以使用 SimpleLink Connect 应用程序连接到电路板(之前、我只能使用 LightBlue 进行连接)。

    感谢您的支持。

    阿方索