- 新增光泵磁力仪驱动模块,通过 USART2 中断接收 BCD 编码数据,采样率 115200bps - 重构数据包架构:引入标准包与扩展包(含光泵数据)两种类型,通过帧头魔数区分 - 新增 DataPacketWithOptic_t、CorrectedDataPacketWithOptic_t 两种扩展数据包类型 - 数据存储改为通用字节流写入(方案Y),支持任意包类型混流存储 - 将编译期配置集中到 app_config.h,包括 UART 输出、SD 存储、GPS 位置等开关 - 移除 ADC_SYNC GPIO 引脚配置,释放 PA2 用于 USART2_TX - 主循环 ProcessAdcData 改为按需选择数据包类型,光泵数据快照在 ADC 中断前完成 - 新增 USART2 错误回调处理,支持接收异常时自动恢复
85 lines
3.3 KiB
C
85 lines
3.3 KiB
C
#ifndef APP_CONFIG_H
|
||
#define APP_CONFIG_H
|
||
|
||
// ============================================================
|
||
// 系统编译期配置总入口
|
||
// 所有可调参数集中在此文件,修改后重新编译生效。
|
||
// 若需恢复 SD 卡运行时加载,将 CFG_LOAD_FROM_FILE 置 1,
|
||
// 其余编译期值将作为加载失败时的 fallback 默认值。
|
||
// ============================================================
|
||
|
||
|
||
// ------------------------------------------------------------
|
||
// 配置加载方式
|
||
// ------------------------------------------------------------
|
||
|
||
// 是否在启动时从 SD 卡 CONFIG.TXT 加载配置
|
||
// 1 = 运行时加载(文件内容覆盖以下编译期值)
|
||
// 0 = 仅使用以下编译期值,不读取文件(安全,可重复)
|
||
#define CFG_LOAD_FROM_FILE 0
|
||
|
||
|
||
// ------------------------------------------------------------
|
||
// 数据输出控制
|
||
// ------------------------------------------------------------
|
||
|
||
// RS485 串口输出开关
|
||
// 1 = 每帧 ADC 数据通过 USART1 以 2Mbps 发送
|
||
// 0 = 禁用串口输出,降低功耗和 CPU 占用
|
||
#define CFG_UART_OUTPUT_ENABLED 1
|
||
|
||
// SD 卡数据存储开关
|
||
// 1 = 每帧数据写入 SD 卡 DATA/SESSION_xxx/ 目录下的文件
|
||
// 0 = 禁用存储,SD 卡仅用于 USB MSC 访问
|
||
#define CFG_STORAGE_ENABLED 1
|
||
|
||
|
||
// ------------------------------------------------------------
|
||
// 功能模块开关
|
||
// ------------------------------------------------------------
|
||
|
||
// 系统监控统计模块
|
||
// 1 = 启用:统计采样次数、丢帧数、SD 写入量、串口发送量,
|
||
// 并定期输出到调试串口 / 写入 LOG.TXT
|
||
// 0 = 禁用:相关代码被条件编译剔除,节省 Flash 和运行时开销
|
||
#define CFG_ENABLE_SYSTEM_MONITOR 0
|
||
|
||
// 数据包中包含 GPS 经纬度和海拔字段
|
||
// 1 = 每帧包含 latitude(float) + longitude(float) + altitude(float),包体增大 12 字节
|
||
// 0 = 仅保留 GPS 时间戳(gps_time),包体更小,适合不需要位置信息的场景
|
||
#define CFG_ENABLE_GPS_POSITION 0
|
||
|
||
|
||
// ------------------------------------------------------------
|
||
// 调试与监控定时参数
|
||
// ------------------------------------------------------------
|
||
|
||
// 调试信息通过 RS485 输出的时间间隔(毫秒)
|
||
// 控制 DebugOutput_PrintSystemStats() 的调用频率
|
||
// 建议范围:5000(5秒)~ 60000(1分钟)
|
||
#define CFG_DEBUG_OUTPUT_INTERVAL_MS 30000
|
||
|
||
// 监控统计数据写入 SD 卡 LOG.TXT 的时间间隔(毫秒)
|
||
// 间隔越短日志越详细,但 SD 卡写入操作越频繁
|
||
// 建议范围:10000(10秒)~ 300000(5分钟)
|
||
#define CFG_MONITOR_SAVE_INTERVAL_MS 30000
|
||
|
||
|
||
// ------------------------------------------------------------
|
||
// SD 卡存储参数
|
||
// ------------------------------------------------------------
|
||
|
||
// SD 卡写入双缓冲区单个缓冲区大小(字节)
|
||
// 更大的缓冲区可减少写入次数,提升吞吐量,但占用更多 RAM
|
||
// STM32F405 RAM 为 192KB,建议不超过 65536(64KB)
|
||
// 典型值:32768(32KB) / 65536(64KB)
|
||
#define CFG_STORAGE_BUFFER_SIZE 32768
|
||
|
||
// 单个数据文件的最大大小(字节),超过后自动创建新文件
|
||
// 较小的文件便于传输和分析,较大的文件减少文件切换开销
|
||
// 典型值:100MB / 500MB / 1024MB
|
||
#define CFG_STORAGE_FILE_MAX_SIZE (100 * 1024 * 1024)
|
||
|
||
|
||
#endif // APP_CONFIG_H
|