STM_ATEM/User/config_manager.h
zhoujie 3c0acaa176 feat(config): 新增运行时配置管理功能
- 新增配置管理器模块,支持从SD卡加载运行时配置
- 将数据输出模式从编译时宏改为运行时配置,提高灵活性
- 新增配置文件 `CONFIG.TXT`,支持串口输出和存储功能的动态开关
- 集成配置管理器到主程序,在系统启动时自动加载配置
- 更新数据存储模块,使用配置管理器管理会话序号

🐛 fix(usart): 修复USART3中断配置并优化波特率

- 添加USART3中断处理函数声明和实现
- 将USART3波特率从921600提升至2000000以提高通信速率
- 调整USART1中断优先级从2改为11,优化中断响应
- 在USART3 MSP初始化和反初始化中添加中断配置

📝 docs(user): 新增功能说明文档

- 新增《配置管理功能说明》文档,详细说明运行时配置的使用方法
- 新增《串口发送监控功能说明》文档,说明新增的串口统计功能
- 文档包含配置项说明、文件格式、使用示例和注意事项

 feat(monitor): 增强系统监控功能

- 在系统监控统计中添加串口发送监控字段(发送次数、字节数、错误数)
- 新增串口发送统计报告函数,集成到RS485驱动中
- 优化监控状态保存格式,采用精简格式减少文件写入阻塞时间
- 监控数据现在包含串口统计信息,便于性能分析和故障排查

♻️ refactor(main): 重构主程序配置处理逻辑

- 移除编译时宏 `DATA_OUTPUT_MODE_UART` 和 `DATA_OUTPUT_MODE_STORAGE`
- 使用 `Config_IsUartOutputEnabled()` 和 `Config_IsStorageEnabled()` 函数替代
- 优化数据存储启动逻辑,仅在存储功能启用时开始记录
- 添加配置加载成功/失败的调试输出信息
2026-02-07 14:28:14 +08:00

43 lines
1.3 KiB
C

#ifndef CONFIG_MANAGER_H
#define CONFIG_MANAGER_H
#include "main.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 1
#define DEFAULT_STORAGE_ENABLED 0
#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