/** * @file calib_store.h * @brief VL53L4CD 校准数据 Flash 持久化存储接口 * @details 利用主 Flash 最后一页(1KB,地址按运行时检测到的 Flash 容量计算) * 保存偏移校准与串扰校准结果,掉电不丢失。 * 注意:链接脚本已将代码区缩小 1KB,为 16K 容量器件保留该页。 */ #ifndef CALIB_STORE_H #define CALIB_STORE_H #include #include /** * @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 */