NRF52840使用蓝牙主从一体模式,作为蓝牙主机与从机建立连接后,一段时间后想主动断开与从机的连接,使用协议栈的接口
SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code));
在SDK例程中,提供了3种断开蓝牙连接的场景:
由此,仿照上述例程,想将断开原因改为BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION。
于是编写程序如下:
执行后报错:<info> app: BLE_Task_Uninit 0x7
查看错误代码:
但是,从SDK的例程看,两个参数都是合法的。所以猜测协议栈中对传入的两个参数的相互配合是有限制的,也就是第一个参数是连接句柄时,第二个参数不能是BLE_HCI_LOCAL_USER_TERMINATED_CONNECTION。