Files
ASER/App/VL53L0X_API/platform/README.md

56 lines
1.7 KiB
Markdown
Raw Normal View History

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*.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 后取数
- 估计/控制50100Hz
## 备注
- 地址写法用的是 **8-bit**,默认地址是 `0x52`
- 多颗同总线时,必须所有器件先 `XSHUT=RESET`,然后逐个拉起并改地址。
- 这版模板默认走“单任务采集 + 快照共享”,适合你当前的 ASER 架构。