微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541支持Broadcaster Multi-Role吗?

CC2541支持Broadcaster Multi-Role吗?

时间:10-02 整理:3721RD 点击:

通过查看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的功能呢?

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 );
}这段程序始终无法执行打开的动作。

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

上一篇:LMX9838SB蓝牙芯片
下一篇:cc2640+cc2592

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top