CH571K HID KEYBOARD连续发送数据超过8个字节后返回0x16 blePending怎么解决?

连续最多只能发送8个字节,后面的返回0x16 blePending,如何加大缓冲区和实现重发?

if(events & START_REPORT_EVT)

{

? ? send_char[send_len] = 0x00;

? ? for(i=0; i<=send_len; i++)

? ? {

? ? ? ? res = hidEmuSendKbdReport(send_char[i]);

? ? ? ? if(res == blePending)

? ? ? ? ? ? i--; //本想这样实现重发,但不行

? ? ? ? UART0_SendByte(res); //串口发出本次返回的结果:前8个是00,第9个开始是0x16?blePending

? ? }

? ? return (events ^ START_REPORT_EVT);

}

请给予指导!谢谢!

不要这样发,这个是把数据先送到BLE LIB的发送队列,LIB也在等连接间隔将数据发出,你这样阻塞的循环调用,会影响其他任务执行。
正常操作按键做缓存,定时调用发送任务,启用按键发送。


能发个例子吗,第一次接触蓝牙开发。用哪个函数?在哪里调用?多谢j_0057.gif


版主帮帮忙吧,或者有没有类似结构的程序可参考?j_0002.gif


只有登录才能回复,可以选择微信账号登录