TI论坛
直播中

王成

7年用户 189经验值
私信 关注
[问答]

GAPRole_SetParameter返回错误

你好:
软件:基于BLE-CC254x-1.4.0版本的SimpleBLEPeripheral例程(修改了按键和LCD显示),环境:IAR8.30.3;
硬件:基于CC2541的第三方模块
问题:LCD显示和按键正常,但启动后蓝牙没有发送广播数据,使用packet sniffer(USB-Dongle)没有抓到任何数据。
跟踪调试发现如下异常:
异常1:SimpleBLEPeripheral.C文件下 “SimpleBLEPeripheral_Init()”函数中的:
GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );
返回值为0x12(bleIncorrectMode: invalid profile role),之前的都是返回0x00的??
异常2:ti_BLE_Software_Developer's_Guide文档中(3.3.3小节,p16),调用GAP_DeviceInit后,会发送(GAP_MSG_EVENT,GAP_DEVICE_INIT_DONE_EVENT)消息,但调试发现GAPRole_ProcessEvent未收到该消息,同时,gapRole_state 一直处于GAPROLE_INIT状态。是不是由于问题1引起的?
谢谢!

回帖(3)

华农武

2020-3-24 10:08:31
nan,
异常1, 你的模块的默认role设置的是啥?peripheral还是central?
异常2, 应该是你异常1 中由于设置错误,导致初始化没有完成。
举报

王成

2020-3-24 10:14:54
引用: 骑猪去天山 发表于 2020-3-24 14:25
nan,
异常1, 你的模块的默认role设置的是啥?peripheral还是central?
异常2, 应该是你异常1 中由于设置错误,导致初始化没有完成。

role设置如下,其中gapRole_profileRole值为0x04
static void gapRole_SetupGAP( void )
[
VOID GAP_DeviceInit( gapRole_TaskID,
gapRole_profileRole, 0,
gapRole_IRK, gapRole_SRK,
&gapRole_signCounter );
]
举报

王成

2020-3-24 10:28:43
问题解决如下:
异常1:返回0x12应该是正常的,因为此时GAP_DeviceInit()还没有调用,device的role没有指定。另外,在后续GAP_DeviceInit完成后,gapRole_ProcessGAPMsg()会重新设定GAPROLE_SCAN_RSP_DATA和GAPROLE_ADVERT_DATA。
异常2:经查找是INT_HEAP_LEN设置过小导致的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分