工具/软件:Code Composer Studio
我想使用函数调用写入 SPPLE 示例中的一个特征(我采用了该示例代码并出于我自己的目的对其进行了修改)
结果= GATT_Write_Withning_Response_Request (
BluetoothStackID、ConnectionID、
DeviceInfo_->ClientInfo.Rx_Characteristic、
(word_t) DataCount、
&SPPLEBufferNotify[TransmitIndex]);
但是、当我发送太多数据时、我会得到返回值:BTPS_ERROR_INFLOADCK_Buffer_space。 那么、很显然、我将发送太多数据包。 Bluetopia 文档指出、用户必须等待回调 etGATT_Connection_Device_Buffer_empty 被调用、然后才能发送更多数据。 因此、我希望在队列变为空时进行此回调、但似乎从未调用此回调、所以问题是为什么? 如果没有溢出、我还希望进行此回调、比如说、如果我发送、只有50个字节、但情况并非如此。
首先、我在 etGATT_SERVER_Write_Request 回调中执行了所有操作。 但是、我认为 、如果我坚持在那里、则 etGATT_Connection_Device_Buffer_Empty 回调可能会错过、因此我只需设置一个标志来执行设置调度程序的主文件中的发送过程。 但是 、既未调用 etGATT_Connection_Device_Buffer_empty、也未调用 etGATT_Connection_Device_Buffer_Empty。 此外、一旦错误 BTPS_ERROR_INFLOAD_Buffer_space 触发、它就会不断返回该错误、因此我必须重新启动器件、为什么它会卡在那里?
提前感谢
帕斯卡尔