蓝牙CC2541 APP问题(IOS系统)
在使用TI CC2541 APP(IOS系统)碰到一些问题, 麻烦各位大师帮忙解决. 非常感谢.
问题描述如下:
一、苹果手机系统版本IOS11.1.2,蓝牙设备用的TI的CC2541(蓝牙协议栈用的BLE-CC2541-1.4.2.2),android手机、CC2540USBdongle搜索、连接我的蓝牙设备都正常。(设备名称改为”BD71”)
一下是蓝牙设备中广播的一段程序
static uint8 scanRspData[] =
{
// complete name
5, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,
'B','D','7','1',
// connection interval range
0x05, // length of this data
GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE,
LO_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ), // 100ms
HI_UINT16( DEFAULT_DESIRED_MIN_CONN_INTERVAL ),
LO_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ), // 1s
HI_UINT16( DEFAULT_DESIRED_MAX_CONN_INTERVAL ),
// Tx power level
0x02, // length of this data
GAP_ADTYPE_POWER_LEVEL,
0 // 0dBm
};
// GAP - Advertisement data (max size = 31 bytes, though this is
// best kept short to conserve power while advertisting)
static uint8 advertData[] =
{
// Flags; this sets the device to use limited discoverable
// mode (advertises for 30 seconds at a time) instead of general
// discoverable mode (advertises indefinitely)
0x02, // length of this data
GAP_ADTYPE_FLAGS,
DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,
// service UUID, to notify central devices what services are included
// in this peripheral
0x03, // length of this data
GAP_ADTYPE_16BIT_MORE, // some of the UUID's, but not all
LO_UINT16( SIMPLEPROFILE_SERV_UUID ),
HI_UINT16( SIMPLEPROFILE_SERV_UUID ),
};
// GAP GATT Attributes
static uint8 attDeviceName[GAP_DEVICE_NAME_LEN] = "BD71";
二、 问题1:苹果手机IOS上用我们写的APP搜索名称字段为“BD71”的蓝牙设备,搜不到,苹果手机上安装了一个BLE Reader,竟然搜索到的名称是“Simple BLE Peripheral”,同时在android 手机上搜索到的是“BD71”,此时在苹果手机上用BLE Reader 连接此蓝牙设备,退出,重新搜索蓝牙设备,此时搜索到的是“BD71”,之后再搜索就一直是“BD71”,不知此现象我怎么解决?
苹果手机与android手机同时搜索同一台蓝牙设备(已经开始广播)
这是用BLE Reader 搜索、连接一次以后,重新搜索的结果
三、 问题2:在IOS的APP上做蓝牙设备的空中升级(OAD),有没有例程和一些说明文件、资料,写APP的不知道该怎么做?(我的蓝牙设备与CC2540USBdongle在BLE Device Monitor上运行空中升级都已经正常)
1 应该和苹果手机的缓存有关,建议您在手机的蓝牙设置中选择‘忽略此设备’再进行尝试
2 您可以参考TI Sensortag APP的IOS源码 http://www.ti.com/tool/sensortag-sw
希望对您有所帮助!