# ERT **Repository Path**: chenxi666/ert ## Basic Information - **Project Name**: ERT - **Description**: No description available - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ERT STM32G474xx 测试项目 ## 项目简介 这是一个基于 STM32G474CBTx 微控制器的嵌入式测试项目。项目集成了 ADC、DAC、USART 等外设,并实现了 USB CDC 设备功能。 ## 硬件配置 - **MCU**: STM32G474CBTx - **主频**: 170MHz (ARM Cortex-M4 with FPU) - **Flash**: 128KB - **SRAM**: 32KB ## 外设功能 | 外设 | 说明 | |------|------| | ADC1/ADC2 | 12位模数转换器 | | DAC1 | 12位数模转换器 | | USART1 | 异步串行通信 | | USB | USB 2.0 全速设备 (CDC类) | | GPIO | 通用输入输出 | ## 项目结构 ``` ├── Core/ # 核心应用代码 │ ├── Inc/ # 头文件 │ │ ├── main.h │ │ ├── adc.h │ │ ├── dac.h │ │ ├── gpio.h │ │ └── usart.h │ └── Src/ # 源文件 │ ├── main.c # 主程序 │ ├── test.c # 测试函数 │ ├── adc.c # ADC配置 │ ├── dac.c # DAC配置 │ ├── gpio.c # GPIO配置 │ └── usart.c # USART配置 ├── USB_Device/ # USB设备相关 │ ├── App/ │ │ ├── usb_device.c # USB初始化 │ │ ├── usbd_cdc_if.c # CDC接口 │ │ └── usbd_desc.c # 描述符 │ └── Target/ │ └── usbd_conf.c # USB配置 ├── Drivers/ # 驱动库 │ ├── CMSIS/ # CMSIS驱动 │ └── STM32G4xx_HAL_Driver/ # STM32 HAL驱动 └── Middlewares/ # 中间件 └── STM32_USB_Device_Library/ # USB设备库 ``` ## 编译说明 ### 环境要求 - GCC Arm Embedded Toolchain - CMake 3.16+ - STM32CubeMX (可选,用于生成.ioc配置) ### 编译步骤 ```bash # 创建构建目录 mkdir build && cd build # 配置项目 cmake .. # 编译 cmake --build . ``` ## 使用说明 1. 通过 ST-Link 或 J-Link 调试器将固件烧录到开发板 2. 连接 USB 到 PC,将识别为 CDC 虚拟串口设备 3. 可通过串口调试助手进行通信测试 ## 通信协议 本项目支持基于 USB CDC 的二进制帧协议,当前已实现 `DISCOVER` 命令的处理逻辑。 - `DISCOVER` 命令:上位机发送全 0 的目标地址和空数据域,设备收到后返回 `DISCOVER_ACK`。 - `DISCOVER_ACK` 帧:设备将自身 96 位 UID 填入 `SRC` 字段,并返回状态码 `0x00`。 - CRC 校验:使用 CRC-16/MODBUS(参见 `Docs/协议.md`)。 > 当前实现会解析收到的 USB CDC 数据帧,校验帧头和 CRC,若命令为 `0x01` 且数据长度为 0,则自动回复设备 UID。 ## 许可证 MIT License