从官方SDK例程中,删掉了peer_manger模块,蓝牙设备不支持配对。
导致iPhone上面的测试APP无法正常连接到设备。
通过分析日志,发现手机与设备的connect过程其实是成功了。
只不过connect之后,手机端又发起了一些其它未知请求,没有被设备端处理,导致手机端又主动断开了连接,然后报错。
查阅资料后,解决方案如下:
在on_ble_evt函数中添加以下代码:
static void on_ble_evt(ble_evt_t const * p_ble_evt)
{
......
case BLE_GAP_EVT_SEC_INFO_REQUEST:
sd_ble_gap_sec_info_reply(p_ble_evt->evt.gatts_evt.conn_handle, NULL, NULL, NULL);
break;
case BLE_GATTS_EVT_SYS_ATTR_MISSING:
sd_ble_gatts_sys_attr_set(p_ble_evt->evt.gatts_evt.conn_handle, NULL, 0, 0);
break;
default:
break;
}
重新测试,问题解决。