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.

[参考译文] CC2652R7:在给定广播间隔广播单个数据包

Guru**** 2747345 points

Other Parts Discussed in Thread: CC2652R7, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1323131/cc2652r7-advertise-single-packet-at-given-advertising-interval

器件型号:CC2652R7
Thread 中讨论的其他器件: SysConfigSysBIOS

您好!

我在定制电路板上使用的是 cc2652r7。 在固件开发中、我使用了 BLE5堆栈中的简单外设示例。

 我希望我的器件每隔5秒广播一次、不可连接的、扫描的、并且只广播一个数据包、我 已经实现了以下代码。

问题是、我在 ~5秒内得到~3-4个数据包。 我不能找到哪里出了问题,请让我知道你对此的回答。

提前感谢。

代码片段:

// if(nvs_ReadData==1)
{
LedInterval=5000;
advParams1.primIntMin=NormalAdvinterval; (5000/0.625)
advParams1.primIntMax=NormalAdvinterval; (5000/0.625)

advParams1.eventProps= GAP_ADV_PROP_LEGACY | GAP_ADV_PROP_SCANNABLE;
}




// Create Advertisement set #1 and assign handle


status = GapAdv_create(&SimplePeripheral_advCallback, &advParams1,
&advHandleLegacy);
SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);


advertData2[0] = 0x02; // Length of this data
advertData2[1] = GAP_ADTYPE_FLAGS;
advertData2[2] = GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED|GAP_ADTYPE_FLAGS_GENERAL; 

// Add Manufacturer specific data
advertData2[3]= ADV_DATA_LEN ; //Length of this data
advertData2[4]= GAP_ADTYPE_MANUFACTURER_SPECIFIC;
memcpy( &advertData2[5],StartofPacket,2); //Start of packet 2bytes
memcpy( &advertData2[7],adDeviceName,ADV_DEVICE_NAME_LEN); // Device Name 8bytes
advertData2[15]= HW_version[0]; //HW version
advertData2[16]= HW_version[1]; //HW version
advertData2[17]= SW_version[0]; //SW version
advertData2[18]= SW_version[1]; //SW version
memcpy(&advertData2[19],systemAddress,6);
advertData2[25]=Reserved; //application

occpancystatus[0] = GPIO_read(KEY_GPIO0);

advertData2[26]=occpancystatus[0]; //application
advertData2[27]= Battery_level; //application
memcpy( &advertData2[28],EndofPacket,2);
// Load advertising data for set #1 that is statically allocated by the app
status = GapAdv_loadByHandle(advHandleLegacy, GAP_ADV_DATA_TYPE_ADV,
sizeof(advertData2), advertData2);
SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);

// Load scan response data for set #1 that is statically allocated by the app
// status = GapAdv_loadByHandle(advHandleLegacy, GAP_ADV_DATA_TYPE_SCAN_RSP,
// sizeof(scanResData1), scanResData1);
// SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);

// Set event mask for set #1
status = GapAdv_setEventMask(advHandleLegacy,
GAP_ADV_EVT_MASK_START_AFTER_ENABLE |
GAP_ADV_EVT_MASK_END_AFTER_DISABLE |
GAP_ADV_EVT_MASK_END);

// Enable legacy advertising for set #1

/* @ref GAP_ADV_ENABLE_OPTIONS_USE_DURATION, this is the time
* (in 10 ms ticks) to advertise before stopping where the range is 10
* ms - 655,540 ms <br>*/


status = GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);

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

    VIdula,

    感谢您的联系! 我们将对此进行深入探讨、并尽快与您联系。 您当前正在使用哪个版本的 SDK?

    另外、 如果您没有其他帮助、请查看 CC13xx/CC26xx SimpleLink Academy 中的 BLE 扫描和广告基础知识部分。

    此致、

    卢克

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

       simplelink_cc13xx_cc26xx_sdk_6_41_00_17 SDK =

    实际上 、我参考了 与 我的实施相同的链接。 正在等待您的回复。

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

    Vidula

    很高兴您已经浏览过学院课程。 我们始终建议使用可 在此处找到的最新版本的 SDK。  

    您能否分享您对项目所做的 SysConfig 更改?

    此致、

    卢克

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

    Vidula

    如上所述、强烈建议使用 SDK 的最新版本。 但是、在浏览您在 SysConfig 中的更改时、我没有看到任何异常之处、但在使用定制板之前、您是否尝试过在 LaunchPad 上实现此项目?  

    如果您尚未在 Launchpad 器件上进行测试、那么与 FW 本身相比、这可能会是硬件中的问题。  

    此致、

    卢克

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

    我正在 launchpad 上进行测试。 现在、我已经安装了新的 SDK、今天要测试广播设备角色。   

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

    Vidula

    感谢您的更新。 请告诉我、在使用 Launchpad 和全新 SDK 进行这轮新测试后、您是否仍遇到问题!

    此致、

    卢克