TI中文支持网
TI专业的中文技术问题搜集分享网站

蓝牙广播问题

我的应用场景要求是在一段时间内关闭蓝牙

我的方法是在蓝牙任务里开启了一个定时器,到达时间后执行

GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),

&initialAdvertEnable); 

initialAdvertEnable = FALSE;

失能蓝牙广播,可是到达设置时间,函数执行后,使用app还能查到蓝牙广播,用app连接后重新断开,此时才搜索不到蓝牙,请问这是什么原因?

Alvin Chen:

你说的应该是扫描回应包,那个应该是你手机端缓存的,你可以试一下其他手机同时是否可以搜到。

user5111551:

回复 Alvin Chen:

您好,我用其他手机试过了也能搜索到蓝牙,并且检查了功耗,跟蓝牙广播时的功耗一致,证明蓝牙此时还是在广播的,我预想的是执行这个函数能够直接关闭蓝牙广播,从而来减少我的设备功耗,可是我的操作并没有达到目的。

Alvin Chen:

回复 user5111551:

这个操作是正常的,请附上抓包文件看一下。 GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t),&initialAdvertEnable);
blog.csdn.net/…/55095874

Susan Yang:

关闭蓝牙的代码没有问题。建议您设置断点调试一下,看能否在定时时间到之后进入蓝牙关闭代码。
另外建议您尝试一下

单次限时广播:

先设置广播的持续时间,如30s:TGAP_GEN_DISC_ADV_MIN = 30000。GAP_SetParamValue(TGAP_GEN_DISC_ADV_MIN,30000).

然后注意设置gapRole_AdvertOffTime = 0。

GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), &gapRole_AdvertOffTime );

这样开启一次广播,持续30秒后就自动停止了。

e2echina.ti.com/…/62121

Susan Yang:

回复 user5111551:

很高兴您能解决问题!

赞(0)
未经允许不得转载:TI中文支持网 » 蓝牙广播问题
分享到: 更多 (0)