采用官方TOF驱动包(X-CUBE-TOF1)存在内存风险博主想采用官方驱动,进行测距,在运行了一段时间后,总是存在内存异常的情况,于是进行定位。 过程非常艰辛,因为内存问题的话,不好定位,有时候开机就内存崩溃了,有时候跑几个小时才崩溃。 采用二分法,定位到VL53L5CX在运行过程中,有时候读取的数据存在异常,但是程序里面,没有对异常数据进行处理,并直接进行拷贝,导致数组越界,如下图所示:
通过插桩法定位到msize在通讯有波动(异常)时,会变得很大(0~1000+)。这就导致在使用memcpy调用时,temp_buff取值越界了,更要命的是p_results那端直接干爆了,导致内存出现异常,指针跑飞。 ps:吐槽一下,不知道为什么,我那个模块在运行300秒左右后,就经常会出现获取数据异常的报错,只有重启模块才能解决。但是根据官方手册说明,重启模块必须要刷固件,这个就有很大的问题了,实在没招了。并且VL53L5CX在官方页面上面描速最远测距是8米,但是在数据手册里面写的4米,实际在户外测试,很糟糕,在2米范围内才比较稳定,感觉主要还是做手势检测比较好使,远距离测距确实不是很靠谱。 |
VL53L5CX相关使用疑问
使用VL53L1X时 RangeStatus=5(UM2356描述其为硬错误)该如何应对这个问题
TOF传感器(VL53L5),无法得到data ready
使用ST原厂VL53L1X-SATEL待机功耗远超手册值
找寻P-NUCLEO-53L4A1下位机软件
关于VL53L5CX
TOF传感器镜片结雾结冰问题?
VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev)
微信公众号
手机版