feat(VL53L4CD): 支持透过玻璃串扰补偿、串口校准命令与校准数据Flash存储

This commit is contained in:
2026-09-07 00:29:41 +08:00
parent ef37553b18
commit ec412b1ffd
13 changed files with 966 additions and 48 deletions
+37
View File
@@ -0,0 +1,37 @@
/**
* @file calib_store.h
* @brief VL53L4CD 校准数据 Flash 持久化存储接口
* @details 利用主 Flash 最后一页(1KB,地址按运行时检测到的 Flash 容量计算)
* 保存偏移校准与串扰校准结果,掉电不丢失。
* 注意:链接脚本已将代码区缩小 1KB,为 16K 容量器件保留该页。
*/
#ifndef CALIB_STORE_H
#define CALIB_STORE_H
#include <stdbool.h>
#include <stdint.h>
/**
* @brief 从 Flash 读取校准数据
* @param[out] offset_mm: 返回保存的偏移量,单位 mm
* @param[out] xtalk_kcps: 返回保存的串扰值,单位 kcps
* @retval true: 校准数据有效; false: 无数据、版本不匹配或校验失败
*/
bool calib_store_load(int16_t *offset_mm, uint16_t *xtalk_kcps);
/**
* @brief 保存校准数据到 Flash(整页擦除后写入)
* @details 操作期间会短暂暂停串口接收中断,耗时约几十毫秒
* @param[in] offset_mm: 偏移量,单位 mm
* @param[in] xtalk_kcps: 串扰值,单位 kcps,0..127
* @retval true: 保存成功; false: Flash 操作失败
*/
bool calib_store_save(int16_t offset_mm, uint16_t xtalk_kcps);
/**
* @brief 擦除 Flash 中的校准数据页
* @retval true: 擦除成功; false: Flash 操作失败
*/
bool calib_store_erase(void);
#endif /* CALIB_STORE_H */