微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 蓝牙设备断开连接后怎样恢复连接

蓝牙设备断开连接后怎样恢复连接

时间:12-22 整理:3721RD 点击:

我使用的是CC2540设备,应用情况是这样,有个用电池供电温度传感器挂在某个房间里面,想达到的目的是随时可以用手机连接它读取数据。

可是实际上我用手机连接上去,这样两个设备就建立了连接,手机可以读到传感器的信息;可是如果手机被拿走,这样蓝牙连接就断开了,当手机再回到蓝牙范围以内,也不能再恢复连接。

我想是因为处在连接状态时,两个设备按照一定的时间间隔来交换数据包来保证时隙的同步,使双方的下一次收发时间可以保持一致;而断开连接之后,双方时隙没办法保持一致,所以就算再回到连接范围,也无法再连接上来了。请问是不是这样?

目前我想了两个办法来解决:
1:使温度传感器检测到连接断开后,就切换成GAPROLE_ADVERTISING状态,这样当手机回到范围之后,就可以搜索到设备,从而可以连接上去,可是长期处于GAPROLE_ADVERTISING应该会增大很多功耗,对电池压力很大。

2:在温度传感器上面设一个按钮,用来激活设备进入GAPROLE_ADVERTISING状态,当手机回来之后,就按一下按钮进入GAPROLE_ADVERTISING状态,这样麻烦的地方是每次需要按一下,也不好用

请问有没有什么办法可以解决这样的问题?

请问有人可以回答我吗?

还有设备是间隙广播的,那每次广播耗时多久呢

Hi Mahone,

一般这种情况下用的是低频率的广播, 通过设置广播的interval来实现.

比如说:

#define HID_LOW_ADV_INT_MIN 1600
#define HID_LOW_ADV_INT_MAX 1600

uint8 param;

VOID GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MIN, HID_LOW_ADV_INT_MIN );
VOID GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MAX, HID_LOW_ADV_INT_MAX );
VOID GAP_SetParamValue( TGAP_LIM_ADV_TIMEOUT, HID_LOW_ADV_TIMEOUT );

// Setup adverstising filter policy first
param = GAP_FILTER_POLICY_WHITE;
VOID GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &param );

VOID GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &param );

你好。我想用从机实现一个广播20秒停下的功能,可是我实验了GAPROLE_ADVERT_OFF_TIME,TGAP_LIM_ADV_TIMEOUT都没有作用

#define DEFAULT_DISCOVERABLE_MODE             GAP_ADTYPE_FLAGS_LIMITED

GAP_SetParamValue(TGAP_LIM_ADV_TIMEOUT, 20);

 uint16 gapRole_AdvertOffTime = 20000; 

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

从机都是一直在广播,没有停止

另外我想问下:

GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MIN, advInt );
GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MAX, advInt );
GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MIN, advInt );
GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MAX, advInt );

这四个参数有什么作用和我之前的设置有关系么?

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

网站地图

Top