我使用了1.4.0协议栈,然后将MPU6050DMP的驱动移植过来读取加速度和角速度值,令我无法解释的是我如果以较高频率读取MPU6050的数值(200HZ-20HZ),我的两部安卓手机的任何蓝牙调试APP都无法连接从机,连接就会断开。但是iOS系统中的调试软件却可以很稳定的连接从机。如果我将采样周期调到很低比如5HZ一下,那此时安卓手机就可以连接成功。这个问题困扰我很久,我也尝试更改了连接参数,和连接超时参数,但是还是无法解决。我想知道原因是什么还有如何解决,谢谢~
Viki Shi:
版本太低可能存在兼容性问题,建议换成最新版的例程进行测试。另外,可以对比IOS和安卓的蓝牙参数要求,据此进行区别设置
user5919273:
回复 Viki Shi:
我在该语句运行期间通过使用HAL_ENTER_CRITICAL_SECTION临时关闭中断,结果这个神奇的可以进行蓝牙连接了。但是中断关闭对于系统的定时器的运行会不会产生影响呢?如果我另外开一个定时器,然后使用该定时器读取传感器数据,这个方法理论上可行吧?
user5919273:
回复 Viki Shi:
还有如果我在蓝牙协议栈中进行耗时操作,我发现如果超过不到一秒钟的耗时操作就会导致蓝牙连接断开,那我的耗时操作在哪里进行呢?