STM_ATEM/User/flash_counter.h
zhoujie 29cc814384 feat(scripts): 新增光泵磁力仪数据支持与混流解析
- 新增混流解析函数 `parse_mixed_stream()`,支持标准包与光泵包交替出现的二进制文件
- 新增光泵磁力仪模拟器 `OpticMagSimulatorThread`,以可配置频率发送BCD帧
- 新增光泵磁场显示标签页,支持文件模式与实时模式下的磁场曲线绘制
- 新增 `flash_counter` 模块,用于NOFX模式下文件序号持久化

♻️ refactor(data_storage): 重构数据存储目录与文件命名策略

- 会话目录改为按GPS日期命名(YYYYMMDD),无GPS时使用NOFX目录
- 文件命名改为基于GPS时间(HHMMSS)或Flash计数器(C开头),消除序号文件依赖
- 移除 `config_manager` 依赖和 `PARAM.TXT` 序号文件读写逻辑
- 新增 `GPS_ParseGPRMC()` 解析函数,提取日期字段用于目录命名

🐛 fix(ltc2508_driver): 修复DMA启动失败时资源泄漏问题

- SPI2/SPI3 DMA启动失败时主动停止已启动的DMA,防止资源泄漏
- 将SPI1的dummy发送缓冲区改为static,确保DMA传输期间数据有效

🐛 fix(rs485_driver): 修复DMA发送缓冲区可能被覆盖的问题

- 引入静态发送缓冲区 `s_tx_buf`,隔离调用方数据与DMA传输,防止TIM2 ISR覆盖

♻️ refactor(ATEMParse): 重构数据结构定义与解析逻辑

- 移除硬编码的V1/V2 dtype,改为动态构建 `make_dtype()` 函数
- 新增数据格式选项(GPS经纬度/光泵),支持灵活配置
- 新增文件模式下的分页浏览功能(滑块/上一页/下一页)
- 优化实时模式下的光泵数据显示与表格列过滤
2026-06-14 23:06:25 +08:00

21 lines
681 B
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef FLASH_COUNTER_H
#define FLASH_COUNTER_H
#include "main.h"
#include <stdint.h>
// STM32F405 1MB Flash 最后一个扇区Sector 11, 128KB
// 地址范围 0x080E0000 ~ 0x080FFFFF
// 确保链接脚本 FLASH ORIGIN+LENGTH 不超过 0x080E0000
#define FLASH_COUNTER_SECTOR FLASH_SECTOR_11
#define FLASH_COUNTER_ADDR 0x080E0000UL
#define FLASH_COUNTER_MAGIC 0x5A5A1234UL
// 从 Flash 读取计数器。首次使用(未写入)时 *counter = 0返回 HAL_OK
HAL_StatusTypeDef FlashCounter_Init(uint32_t *counter);
// 将新计数器值擦除写入 Flash约 1~2 ms
HAL_StatusTypeDef FlashCounter_Write(uint32_t counter);
#endif // FLASH_COUNTER_H