暂时禁止接收不可编辑的数据

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
2个职位/0个新职位
最后一篇文章
马哈朱
离线
最后一次见到:2年2天前
已加入:2018-01-29 01:08
暂时禁止接收不可编辑的数据

我有一个程序,从BLE中获取大量字节,然后通过I2C发送到另一个与对话芯片相连的设备

我的程序基于ble\u peripheral\u app示例程序

问题是,当I2C写入发生时(由于我正在写入大量字节,因此需要一些时间才能完成),如果新数据通过BLE进入,BLE就会断开连接

我假设,如果新的BLE数据在写入I2C端口时进入,程序会尝试跳转到user\u catch\u rest\u hndl()函数,I2C会阻止这种情况发生,这会导致BLE断开连接

在所有I2C通信完成之前,是否可以阻止芯片接收任何新的BLE数据?我想做的是在开始I2C通信之前“停止BLE数据接收”,这样芯片就会忽略任何新的BLE数据,然后在所有I2C操作完成后再次“启动BLE数据接收”。

如何做到这一点?

关键词:
设备:
MT\u对话框
离线
最后一次见到:1个月2周前
工作人员
已加入:2015-06-08 11:34
你好mahaju,

你好mahaju,

据我所知,显然由于I2C活动,您丢失了不可恢复的连接事件,但我不太明白输入数据的情况,您的意思是当中央设备发送数据时您断开了连接?关于停止从中央接收数据,没有本机方法可以这样做,只有当您有一个特性作为流控制信号,可以由外围设备通知,并且中央应该在发送数据之前检查这一点。

还要注意,连接是用连接事件来维护的,您应该安排这些事件只是为了维护连接,而不仅仅是为了获取数据,因此您必须确保设备能够安排连接事件的时间,而不是执行I2C事务。为了实现这一点,您必须确保I2C事务不会花费那么长的时间,并让调度程序运行以调度连接事件,所以你的I2C事务应该分成几个小部分,可以连接到app\u on \u system \u powered回调或app\u on \u ble \u powered并返回KEEP \u powered,只要有更多的事务要执行,这样设备就可以逐件执行整个事务,而不会延迟调度连接事件的调度器。

谢谢你的对话