公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

大家好,真的希望有人 CAN 帮助我解决这个问题 🙂

我有两台运行相同的 PSoC 6 代码的设备。

我有一台主持人和一台参与者设备。 参与者传达自己的 BLE 唯一 ID,然后主持人尝试与参与者建立联系。 我认为这里的主机将被视为中心,而参与者将被视为外围设备?

在大多数情况下,连接工作正常。 但是,有时候,中央设备会找到目标外围设备,收到 CY_BLE_EVT_GATT_CONNECT_IND 事件,然后是 CY_BLE_EVT_GAP_ENHANCE_CONNECT_CONNECT_CONNECT_IND 事件(状态:0x0,bdHandle:0x1,原因:0x3E)。

在外围设备方面,它正在等待 CY_BLE_EVT_GAP_ENHANCE_CONN_CONN_CONMPLETE 事件,同时循环运行 cy_BLE_ProcessEvents ()。 即使中央设备收到所有这些 BLE 事件,外围设备有时也不会收到任何事件,并且最终会在等待连接时超时(5 秒钟超时)。

不管它是否起作用,cy_ble_gapc_ConnectDevice 函数都会返回 CY_BLE_SUCCESS。

令我感到奇怪的是,这种情况发生在大约 15% 的时间里,条件没有变化。 我 CAN 做些什么来弄清楚为什么会发生这种情况? 这种情况有常见的原因吗?

就 BLE 配置而言:

  • 这两个设备都是 GAP 角色外设和中央设备(它们中的任何一个 CAN 主机或参与者)
  • 附有 GAP 设置的图片
0 点赞
2 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

你好 @NoahP

超时临近时会出现这个问题吗? 这意味着中央设备(输入 2)在 4 秒后外围设备处于活动状态(其他设备输入 1)。
如果是,最好在检查状态之前调 用 cy_ble_processEvent s 函
数。因为我现在没找到。

热烈的问候,

ADSW



0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好

线程由于长时间不活动而被锁定, CAN 通过打开一个引用锁定线程的新线程来继续讨论该主题。
不活跃话题中的持续讨论可能大多是在社区用户无人参与的情况下进行的。

谢谢和问候,
ADSW

0 点赞