TI论坛
直播中

金果子

7年用户 185经验值
私信 关注
[问答]

如何使用CC2541的Broadcaster Multi-Role的功能?

通过查看ti的文档中说CC2541在建立连接之后,还能继续广播,如下图:

添加步骤(工程:BLE-CC254x-1.4.1.43908b->SimpleBLEPeripheral):
         1.IAR工具中修改宏:xPLUS_BROADCASTER ---> PLUS_BROADCASTER ;
          2.通过IAR去掉peripheral.c&peripheral.h的包含,添加包含peripheralBroadcaster.c&perpherialBroadcaster.h;
编译不通过,我又修改了:
          3.修改了peripheralBroadcaster.c中包含的头文件hci.h ----> hci_tl.h;
          4.添加perpherialBroadcaster.h中缺失的宏GAPROLE_ADVERTISING_NONCONN...;
编译通过了,运行发现没有任何广播包的发出:
         5.修改应用程序中包含的头文件:peripheral.h ----> peripheralBroadcaster.h,发现同样的没有广播发出,没有任何效果;
跟踪调试发现gapRole_state状态在我调用GAPRole_SetParameter启用广播的时候,gapRole_state的值始终等于0,即为GAPROLE_INIT;
在GAPRole_ProcessEvent中收到的系统消息,HCI_GAP_EVENT_EVENT事件的Status始终等于0xff。
想请教一下各位大神,我整个过程哪里出了问题,或者说应该怎么使用CC2541的Broadcaster Multi-Role的功能呢?

回帖(3)

蒋美燕

2019-11-11 08:20:48
GAPROLE_ADVERT_ENABLED 这个值有没有设置为true?
举报

金果子

2019-11-11 08:28:27
引用: bctwerwer 发表于 2019-11-11 08:20
GAPROLE_ADVERT_ENABLED 这个值有没有设置为true?

设置成了true了~由于gapRole_state的状态值始终为0,所以,
// Turn on Advertising
if ( (gapRole_state == GAPROLE_STARTED)
|| (gapRole_state == GAPROLE_WAITING )
|| (gapRole_state == GAPROLE_WAITING_AFTER_TIMEOUT) )
[
VOID osal_set_event( gapRole_TaskID, START_ADVERTISING_EVT );
]这段程序始终无法执行打开的动作。
举报

金果子

2019-11-11 08:41:40
找到一种更简单的方法,就是直接只添加PLUS_BROADCASTER,文件还是使用peripheral.c&peripheral.h两个文件,既简单又粗暴,而且效果测试还不错。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分