NRF sd_ble_gap_disconnect
时间: 2025-03-05 11:52:06 浏览: 12
NRF SDK sd_ble_gap_disconnect
函数用法
在 Nordic 的 nRF SDK 中,sd_ble_gap_disconnect
是用于断开 GAP 连接的一个重要函数。此函数允许设备主动终止与另一台蓝牙低功耗 (BLE) 设备之间的连接。
函数原型
uint32_t sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code);
- conn_handle: 表示要断开的连接句柄。
- hci_status_code: 提供给远程设备的原因码,通常设置为
BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION
来表示由本地用户请求断开连接[^1]。
当调用该函数成功时返回 NRF_SUCCESS
; 如果失败,则会返回相应的错误代码以便进一步处理。
下面是一个具体的实现例子:
static void disconnect(uint16_t conn_handle, void *p_context)
{
UNUSED_PARAMETER(p_context);
ret_code_t err_code = sd_ble_gap_disconnect(conn_handle,
BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
if (err_code != NRF_SUCCESS)
{
NRF_LOG_WARNING("Failed to disconnect connection. "
"Connection handle: %d Error: %d",
conn_handle,
err_code);
}
else
{
NRF_LOG_DEBUG("Disconnected connection handle %d", conn_handle);
}
}
这段代码展示了如何安全地执行断开操作并记录日志消息来帮助调试任何潜在的问题。
为了确保事件能够被正确接收,在应用程序初始化阶段还需要注册一个观察者以监听来自 SoftDevice 的各种事件通知:
// 注册一个处理器用于处理 BLE 事件.
NRF_SDH_BLE_OBSERVER(m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
这使得程序可以在发生特定类型的事件(如连接状态变化)时做出响应[^2]。
相关推荐

















