# VL53L0X 多传感器模板(STM32H743 + FreeRTOS) 这组模板按固定顺序组织 4 颗 VL53L0X: 1. 左上 2. 左下 3. 右上 4. 右下 ## 文件说明 - `vl53l0x_platform.h/.c` - ST 官方 API 的平台适配层 - 不再把 `hi2c1` 硬编码到驱动里 - 读写失败时不会污染 `RdWord/RdDWord` 输出 - `PollingDelay()` 在调度器已启动时使用 `vTaskDelay()` - `vl53_board.h/.c` - 4 颗 VL53L0X 的板级管理层 - 负责 `XSHUT` 拉低/逐个拉起/逐个改地址 - 默认运行地址:0x54 / 0x56 / 0x58 / 0x5A(8-bit 写法) - `vl53_task.h/.c` - FreeRTOS 任务骨架 - 10ms 周期轮询一遍 4 颗传感器 - 采集结果写成一个快照,避免上层散读散写 ## 你需要改的地方 只要改 `vl53_board.c` 里的 `g_vl53_hw_cfg[]`: - `hi2c` - `xshut_port` - `xshut_pin` - `gpio1_port` / `gpio1_pin`(如果暂时不用中断,可保持 `NULL/0`) ## 集成方式 1. 保留 ST 官方 API 的 `vl53l0x_api*.c`、`vl53l0x_def.h` 等核心文件不动。 2. 用本模板替换你原来的 `vl53l0x_platform.h/.c`。 3. 新增 `vl53_board.*` 和 `vl53_task.*` 到 `App/sensors/` 或你自己的目录。 4. 在 CubeMX 里保留任务壳函数,在任务壳里调用 `AppVl53_TaskLoop()`。 5. 不要把 VL53 逻辑塞进你 20ms 的 `canTxTask`。 ## 建议任务频率 - `canTxTask`: 保持 20ms - `vl53Task`: 10ms 唤醒,内部读 ready 后取数 - 估计/控制:50–100Hz ## 备注 - 地址写法用的是 **8-bit**,默认地址是 `0x52`。 - 多颗同总线时,必须所有器件先 `XSHUT=RESET`,然后逐个拉起并改地址。 - 这版模板默认走“单任务采集 + 快照共享”,适合你当前的 ASER 架构。