ble通信问题

image.png

在simpleProfileChangeCB函数中加入一些ADC测试会影响蓝牙通信么

进行ADC采集是通过TMOS任务管理,并不是直接放在发送函数的地方。

可以自己写一个tmos任务进行ADC采集。


我是想通过接收到主机的指令后,再决定进行哪个ADC任务,这个可以实现么


从机收到主机发送的数据后可以进行判断:

image.png

根据接收到的数据进行tmos任务的触发。


我间隔已经调到最大,连接发送指令后,输出一次数据,然后蓝牙就断开了,怎么连都连不上,这种情况只能将任务尽可能缩短

时间对么

image.png


查看蓝牙断开的原因是什么。

如果是这里进行发送数据造成断开,查看一下是不是手动调用发送函数速度太快,但是连接间隔太小而导致蓝牙断开。可以将有效连接间隔配置小于发送数据函数。


6bdb0b8b14663598d14b684c8b2bf6b.jpg

发送指令蓝牙就断开了,重连了以后也是这样,还有请问下发送函数速度这个是在哪里定义的


调用发送函数是自己管理的,比如主机给从机发送数据是看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)image.png


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