在simpleProfileChangeCB函数中加入一些ADC测试会影响蓝牙通信么
进行ADC采集是通过TMOS任务管理,并不是直接放在发送函数的地方。
可以自己写一个tmos任务进行ADC采集。
我是想通过接收到主机的指令后,再决定进行哪个ADC任务,这个可以实现么
从机收到主机发送的数据后可以进行判断:
根据接收到的数据进行tmos任务的触发。
我间隔已经调到最大,连接发送指令后,输出一次数据,然后蓝牙就断开了,怎么连都连不上,这种情况只能将任务尽可能缩短
时间对么
查看蓝牙断开的原因是什么。
如果是这里进行发送数据造成断开,查看一下是不是手动调用发送函数速度太快,但是连接间隔太小而导致蓝牙断开。可以将有效连接间隔配置小于发送数据函数。
发送指令蓝牙就断开了,重连了以后也是这样,还有请问下发送函数速度这个是在哪里定义的
调用发送函数是自己管理的,比如主机给从机发送数据是看APP那边手动选择的发送速度;从机给主机noti是看调用TMOS进行发送的速度。这些都是自己定义处理的。
上面报错原因是reason8,超时断开了。
一般情况为连接间隔到来的时候理论上应该进行蓝牙的收发,但是被其他的任务打断导致蓝牙的收发异常,而造成的断开。
比较明显的现象可以是加一个while循环,蓝牙必定会断开。
因此检查你的代码里面最大任务时长,确保该最大的任务时长小于有效连接间隔的一般。
关于连接间隔的讲解:
蓝牙BLE从机Peripheral讲解一(广播间隔和连接间隔) - SweetTea_lllpc - 博客园 (cnblogs.com)
用IO口测量了一下我加入的任务时长只有450ms左右,但是我最大连接间隔已经设置3200拉满了,依然会造成蓝牙断开,连接超时等。
您好,450ms已经是很长的占用时间了。在加大连接间隔的同时,连接超时时间也要加大,可以尝试加大到连接间隔的3倍。
如果还有断连问题,可以发送邮件至 lpc@wch.cn
问题定位可以参考下篇博客:
CH579/CH573/CH583/CH57x/CH58x 蓝牙从机使用注意事项 - iot-fan - 博客园 (cnblogs.com)