CC2541蓝牙芯片 可以做成双模模式嘛?
CC2541蓝牙芯片 可以做成双模模式嘛? 也就是既能传输大数据 也可以有低功耗模式这样的?
通过更改连接间隔来做。如下是一些指引:
- 先看到如下的define,这是允许参数更新,默认的是不允许,跟踪这个参数就可以了解这套机制,下面讲解。
// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST FALSE
- 如果是TRUE,则在初始化时通过如下函数设置参数
GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );
- 进入该函数可以看到,设置了gapRole_ParamUpdateEnable变量
- 搜索这个变量,可以在peripheral.c看到处理,最后就是调用
// Start connection update procedure
gapRole_startConnUpdate( GAPROLE_NO_ACTION );
- 这个函数的参数要注意的也是要跟踪的,下面的函数就是处理,在这检查,存在什么问题。再调整下期望的连接间隔大小,就能搞定了。
#define GAPROLE_NO_ACTION 0 // Take no action upon unsuccessful parameter updates
#define GAPROLE_RESEND_PARAM_UPDATE 1 // Continue to resend request until successful update
#define GAPROLE_TERMINATE_LINK 2 // Terminate link upon unsuccessful parameter updates
static void gapRole_HandleParamUpdateNoSuccess( void )
{
// See which option was choosen for unsuccessful updates
switch ( paramUpdateNoSuccessOption )
{
case GAPROLE_RESEND_PARAM_UPDATE:
GAPRole_SendUpdateParam( gapRole_MinConnInterval, gapRole_MaxConnInterval,
gapRole_SlaveLatency, gapRole_TimeoutMultiplier,
GAPROLE_RESEND_PARAM_UPDATE );
break;
case GAPROLE_TERMINATE_LINK:
GAPRole_TerminateConnection();
break;
case GAPROLE_NO_ACTION:
// fall through
default:
//do nothing
break;
}
}
cc2564芯片可以考虑。双模的。