ch579蓝牙连接超时

想实现一个功能,从外部设备采集数据,每一次的采集时间比较长,大概300ms,然后通过蓝牙发送出去,不断循环。在蓝牙串口的例子上进行修改,新建了一个数据采集并发送事件,使用TMOS进行处理。

①在初始化处启动task,在task事件处理末尾再次启动task,达到循环的目的。

②在程序主循环里不断启动task。

两种方法都导致蓝牙连接超时。

image.png

请问如何解决频繁启动耗时较长task导致蓝牙连接超时问题?还有就是在主函数while循环里能写函数吗,还是说只能写一些耗时较短的函数,会影响其他TMOS任务吗?源代码中蓝牙串口app_uart_process能够成功运行的原因是不是因为他是检测到串口中断才启动task,虽然写在while循环里,但是不是每次循环都运行,不会影响其他蓝牙任务?

通过TMOS任务调度发送处理你的任务。你的采集时间比较长,可以拉大连接间隔,给以你的任务足够的采集时间同时确保蓝牙不会断开,或者可以拆分你的任务,从上述而言,还是建议拉大连接间隔参数较好。

在while循环里不建议自己添加函数,如果需要处理某些任务可以通过添加TMOS事件轮询去处理你的任务。

这里提供两份博客供你参考:

蓝牙 BLE连接参数 连接间隔讲解 connection interval Slave latency timeout CH573 CH582 CH579 peripheral通用外设例子讲解四 - debugdabiaoge - 博客园 (cnblogs.com)

WCH TMOS用法详解 - debugdabiaoge - 博客园 (cnblogs.com)



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