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