mytemp_data0_len=8;
需要发送例如;1234567+回车,发送结果只有12,len是打印了,不知道什么问题
mytemp_data0_len=8;
需要发送例如;1234567+回车,发送结果只有12,len是打印了,不知道什么问题
发送数据之后,需要释放。举例,先发送按键A,然后释放;再发送按键B,然后释放。这样可以发送所需要的所有键值。
释放了,发送8个0x00,不是就是释放吗
发送数据之后,还需要判断是否发送成功。实际在发送数据的时候,建议一个个的发送出去,或者一个数据包里面填写几个字节,但是填写字节过多不一定会完全被识别到。
或者可以像例程一样测试,发送一个,里面释放,再发送下一个。
注意判断返回值即是否发送成功。
方法二不适合,因为发送传感器值到文本里面,键值会有重复的 ,如0.0005,只能显示0.5
用原工程测试,效果如下
还有就是换成按间隔发送数据也有问题
上面是读到按键后,打开键值发送时间20ms,发送数据0.864 偶尔会有个数据是正常
发送失败则再次发送,连接间隔调小一些。先从比较大的间隔发送,然后降低速度。发送失败不仅要检查有效键值的发送,还需要注意释放键(0)的发送,否则一直得不到释放会出现上图的情况。
BLE_BUFF_NUM 控制器缓存的包数量 这个最大值是多少, 意思是缓存到这么多个包后在发送吗
BLE_BUFF_NUM是缓存包的数量,防止发送包异常进行缓存的操作。
比如主机在一直往外发包的时候,蓝牙系统不一定来得及处理,因此预留一个缓冲稍后再发送避免直接丢弃。
一般是在大数据量的时候使用到,可以给15,不建议给更大,会消耗RAM。一般情况蓝牙传输使用默认例程的5即可。
现在能正常发出来,但是我们测试发现,安卓手机与电脑上没有问题,但是换成华为手机就会出现 偶尔符号错位,如发送0.0005 接收到 00.005
需要判断数据发送的准确性,即发送数据是否成功,数据是否为正确,释放按键是否成功。
可以蓝牙抓包查看发送的数据是否为正确。