STM_ATEM/CLAUDE.md
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

2.4 KiB
Raw Permalink Blame History

STM_ATEM_F405 项目说明

项目概述

STM32F405 航空电磁接收机固件,基于 STM32CubeIDE + HAL 库开发。

核心功能: ADC 采集LTC2508→ 数据校正 → SD 卡存储 / UART 输出

目录结构

  • Core/ — CubeMX 生成代码main.c、外设初始化不要手动修改生成区域
  • User/ — 业务逻辑驱动、数据包、存储、GPS、配置管理等
  • Drivers/ — HAL 驱动库(不修改)
  • Middlewares/ — FatFs、USB不修改

关键模块

文件 职责
ltc2508_driver SPI ADC 采集驱动
data_packet 数据包格式定义与封包
data_storage FatFs SD 卡文件写入
correction ADC 校正参数应用
app_config 编译期配置UART 输出、SD 存储开关)
config_manager 配置运行时访问层,默认值来自 app_config.h
gps_driver GPS NMEA 解析UART
rs485_driver RS485 通信
optic_mag_driver 光学磁传感器
system_monitor 系统状态统计与诊断

通信接口

接口 用途 波特率 备注
USART1 (PA9/PA10) RS485 数据输出 2 000 000 TX DMADE/RE 控制脚 PC7
USART2 (PA3) 光泵磁力仪接收 115 200 仅 RXDMA 循环PA2 已改为普通 GPIO
USART3 (PB10/PB11) GPS NMEA 接收 115 200 TX/RX单字节中断接收
SPI1/2/3 LTC2508 ADC 采集 三路 SPI 同时驱动三片 ADC
SDIO SD 卡FatFs 与 USB MSC 共用,采样期间独占
USB MSC 大容量存储 供 PC 直接访问 SD 卡

开发规范

  • 每次修改代码后,判断是否影响模块职责、接口用途、配置项或注意事项,若有则同步更新 CLAUDE.md 对应部分

  • 业务代码只放 User/ 目录CubeMX 生成区域(USER CODE BEGIN/END)内写用户代码

  • 函数命名:模块名_功能()DataStorage_StartRecording()

  • 全局变量加 g_ 前缀,静态变量加 s_ 前缀

  • 不添加无意义注释;注释用中文说明 为什么,不说明是什么

注意事项

  • 修改 .ioc 文件后重新生成代码会覆盖 Core/ 文件,需手动恢复用户代码
  • USB MSC 与 FatFs 共享 SD 卡,采样期间需卸载再挂载
  • 配置在 User/app_config.h 中以 #define 编译期确定;若需恢复 CONFIG.TXT 运行时加载,在 main.c 挂载 SD 后重新调用 Config_Load() 即可