微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 状态是GAPROLE_ADVERTISING,但是不能scan到?

状态是GAPROLE_ADVERTISING,但是不能scan到?

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

我按照论坛上的做法,改成一直在广播。

测试时,长时间不连接,再去连接设备,都是正常的。

现在的问题是,偶尔会出现不能scan到的问题

此时,

gapProfileState = GAPROLE_ADVERTISING

用btool抓包

[1] : <Tx> - 10:37:45.140

-Type : 0x01 (Command)

-Opcode : 0xFE04 (GAP_DeviceDiscoveryRequest)

-Data Length : 0x03 (3) byte(s)

 Mode : 0x03 (All)

 ActiveScan : 0x01 (Enable)

 WhiteList : 0x00 (Disable)

Dump(Tx):

01 04 FE 03 03 01 00 

------------------------------------------------------------------------------------------------------------------------

[2] : <Rx> - 10:37:45.171

-Type : 0x04 (Event)

-EventCode : 0xFF (HCI_LE_ExtEvent)

-Data Length : 0x06 (6) bytes(s)

 Event : 0x067F (GAP_HCI_ExtentionCommandStatus)

 Status : 0x00 (Success)

 OpCode : 0xFE04 (GAP_DeviceDiscoveryRequest)

 DataLength : 0x00 (0)

Dump(Rx):

04 FF 06 7F 06 00 04 FE 00 

------------------------------------------------------------------------------------------------------------------------

[3] : <Rx> - 10:37:55.437

-Type : 0x04 (Event)

-EventCode : 0xFF (HCI_LE_ExtEvent)

-Data Length : 0x04 (4) bytes(s)

 Event : 0x0601 (GAP_DeviceDiscoveryDone)

 Status : 0x00 (Success)

 NumDevs : 0x00 (0)

Dump(Rx):

04 FF 04 01 06 00 00 

这个问题出现,需要app连接断开几次,也不是必定出现

是协议栈的bug吗?

该怎么进一步分析

有解决方案吗?

谢谢

补充一下

scan不到后

执行

uint8 initial_advertising_enable = FALSE;
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_enable );
GAPRole_TerminateConnection();

再执行

if( gapProfileState != GAPROLE_CONNECTED )
{
uint8 current_adv_enabled_status;
uint8 new_adv_enabled_status;

//Find the current GAP advertisement status
GAPRole_GetParameter( GAPROLE_ADVERT_ENABLED, &current_adv_enabled_status );

if( current_adv_enabled_status == FALSE )
{
new_adv_enabled_status = TRUE;
}
else
{
new_adv_enabled_status = FALSE;
}

//change the GAP advertisement status to opposite of current status
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &new_adv_enabled_status );
}

就又可以连上了

这种情况建议您用CC2540 USB Dongle和PC端的Packet Sniffer一起使用 看是否空口能够扫描到广播端的广播数据

如果是 则是btool的问题 如果不是 则再从广播端找原因

我觉得肯定不是btool的问题。

此时用ipad和手机都不能找到设备。

我看到有网友说是32k晶振的问题

但是,我重新开关一次广播就好了,应该也不是晶振的问题

我想问一下TI

我用的协议栈1.4.0处理这些设备的链接,断线,超时,再链接,再断线方面是否经过考验?

是我哪里没有配置好,还是协议栈本身有bug?

“我用的协议栈1.4.0处理这些设备的链接,断线,超时,再链接,再断线方面是否经过考验?”

我这边完全正常,你抓一下包,看看实际的数据

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

网站地图

Top