Files
ASER/App/VL53L0X_API/platform
2026-04-05 10:15:40 +08:00
..
1.0
2026-03-31 23:30:33 +08:00
1.0
2026-04-05 10:15:40 +08:00
1.0
2026-04-05 10:15:40 +08:00
1.0
2026-04-05 10:15:40 +08:00
1.0
2026-03-31 23:30:33 +08:00
1.0
2026-03-31 23:30:33 +08:00
1.0
2026-03-31 23:30:33 +08:00
1.0
2026-03-31 23:30:33 +08:00

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 / 0x5A8-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*.cvl53l0x_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 后取数
  • 估计/控制50100Hz

备注

  • 地址写法用的是 8-bit,默认地址是 0x52
  • 多颗同总线时,必须所有器件先 XSHUT=RESET,然后逐个拉起并改地址。
  • 这版模板默认走“单任务采集 + 快照共享”,适合你当前的 ASER 架构。