ST意法半导体
直播中

陈存楼

8年用户 1264经验值
私信 关注
[问答]

求助,有没有简单的方法来关闭和打开BLE?

即使当前已连接,我也希望能够关闭 BLE(例如使用计时器)。我知道我可以阻止它做广告,但这似乎并没有终止连接。基本上,超时后,我希望 BEL 关闭并停止使用电源
然后我想用外部中断(磁铁的霍尔效应触发器)将其重新打开。如果我停止 BLE,是否需要重新初始化它或类似的东西?
我已经使用 p2pServer 示例找到“停止广告”代码,但如果您连接到它,它不会完全停止 BLE。










回帖(1)

沈家春

2023-2-1 11:01:25
对于“原因”参数,我使用 BLE_PEER_DEVICE_TERM_POWER_OFF
/**
* @brief @ref hci_disconnect 用于终止现有连接。这
Connection_Handle 命令参数指示哪个连接是
断开连接。Reason命令参数表示结束的原因
连接。遥控器将收到 Reason 命令
@ref hci_disconnection_complete_event 事件中的参数。所有同步连接
物理链路上的连接应在 ACL 连接之前断开
断开相同的物理连接。
(参见蓝牙规范 v.5.0,第 2 卷,E 部分,7.1.6)
在发送任何新命令(包括系统硬件重置)之前留出 100 毫秒的空白窗口很重要,
因为在@ref hci_disconnection_complete_event 事件之后,系统可以立即将重要信息保存在非易失性内存中。
* @param Connection_Handle 给出命令的连接句柄。
* 值:
- 0x0000 ... 0x0EFF
* @param Reason 结束连接的原因。
* 值:
- 0x05:身份验证失败
- 0x13:远程用户终止连接
- 0x14:远程设备因资源不足而终止连接
- 0x15:远程设备因断电而终止连接
- 0x1A:不支持的远程功能
- 0x3B:不可接受的连接参数
* @retval 表示成功或错误代码的值。
*/
tBleStatus hci_disconnect(uint16_t Connection_Handle, uint8_t Reason);
举报

更多回帖

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