STM_ATEM/User/config_manager.h
zhoujie bc37e14fba feat(optic_mag): 集成光泵磁力仪驱动并重构数据包架构
- 新增光泵磁力仪驱动模块,通过 USART2 中断接收 BCD 编码数据,采样率 115200bps
- 重构数据包架构:引入标准包与扩展包(含光泵数据)两种类型,通过帧头魔数区分
- 新增 DataPacketWithOptic_t、CorrectedDataPacketWithOptic_t 两种扩展数据包类型
- 数据存储改为通用字节流写入(方案Y),支持任意包类型混流存储
- 将编译期配置集中到 app_config.h,包括 UART 输出、SD 存储、GPS 位置等开关
- 移除 ADC_SYNC GPIO 引脚配置,释放 PA2 用于 USART2_TX
- 主循环 ProcessAdcData 改为按需选择数据包类型,光泵数据快照在 ADC 中断前完成
- 新增 USART2 错误回调处理,支持接收异常时自动恢复
2026-06-07 22:50:54 +08:00

44 lines
1.4 KiB
C

#ifndef CONFIG_MANAGER_H
#define CONFIG_MANAGER_H
#include "main.h"
#include "app_config.h"
#include <stdint.h>
// 配置文件路径
#define CONFIG_FILE_PATH "0:/CONFIG.TXT"
// 系统配置结构体
typedef struct {
uint8_t uart_output_enabled; // 串口输出使能: 0=禁用, 1=启用
uint8_t storage_enabled; // SD卡存储使能: 0=禁用, 1=启用
uint32_t session_number; // 会话序号(用于数据存储文件夹命名)
uint32_t config_version; // 配置版本号(用于验证)
uint32_t checksum; // 校验和(用于验证配置完整性)
} SystemConfig_t;
// 默认配置值
#define DEFAULT_UART_OUTPUT_ENABLED CFG_UART_OUTPUT_ENABLED
#define DEFAULT_STORAGE_ENABLED CFG_STORAGE_ENABLED
#define CONFIG_VERSION 0x00010000 // 版本 1.0.0
// 函数声明
void Config_Init(void);
HAL_StatusTypeDef Config_Load(void);
HAL_StatusTypeDef Config_Save(void);
void Config_SetDefaults(void);
// 配置访问函数
uint8_t Config_IsUartOutputEnabled(void);
uint8_t Config_IsStorageEnabled(void);
void Config_SetUartOutput(uint8_t enabled);
void Config_SetStorage(uint8_t enabled);
void Config_GetConfig(SystemConfig_t *config);
// 会话序号管理函数
uint32_t Config_GetSessionNumber(void);
void Config_SetSessionNumber(uint32_t session_number);
uint32_t Config_IncrementSessionNumber(void);
#endif // CONFIG_MANAGER_H