# rust-rebot **Repository Path**: iron-beast_2/rust-rebot ## Basic Information - **Project Name**: rust-rebot - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-19 - **Last Updated**: 2025-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 🎯 项目特性 功耗优化:待机 ≤50mA,运行 ≤200mA 📦 支持设备 电机 型号 厂商 控制帧 ID 反馈帧 ID 控制模式 控制范围 M3508 大疆 0x200/0x1FF 0x201-0x208 电流控制 ±16384 M2006 大疆 0x200/0x1FF 0x201-0x208 电流控制 ±10000 GM6020 大疆 0x1FF/0x2FF 0x205-0x20B 电压控制 ±30000 其他设备 设备类型 型号 CAN ID 范围 协议 BMS 通用 CAN BMS 0x100-0x10F 小端字节序 编码器 增量式编码器 0x300-0x30F 小端字节序 🛠️ 技术栈 MCU: STM32F407VG (168MHz, 1MB Flash, 192KB RAM) HAL: stm32f4xx-hal v0.21 CAN 驱动: bxcan v0.7 日志: defmt + defmt-rtt 调试: probe-rs 📁 项目结构 rust-stm32-robot/ ├── Cargo.toml # 项目配置 ├── memory.x # 内存布局 ├── Embed.toml # probe-rs 配置 ├── src/ │ ├── lib.rs # 库入口 │ ├── main.rs # 主程序 │ ├── config.rs # 系统配置 │ ├── error.rs # 错误定义 │ ├── protocol.rs # 协议抽象 │ ├── safety.rs # 安全监控 │ ├── utils.rs # 工具函数 │ ├── can/ │ │ ├── mod.rs # CAN 模块 │ │ ├── driver.rs # CAN 驱动 │ │ ├── filter.rs # 滤波器配置 │ │ └── queue.rs # 帧队列 │ └── devices/ │ ├── mod.rs # 设备模块 │ ├── motor.rs # M3508 电机 │ ├── bms.rs # BMS 电池 │ ├── encoder.rs # 编码器 │ └── manager.rs # 设备管理器 └── docs/ ├── REQUIREMENTS.md # 需求文档 ├── ARCHITECTURE.md # 架构设计 ├── TESTING.md # 测试指南 ├── DEPLOYMENT.md # 部署指南 └── MAINTENANCE.md # 运维手册 🚀 快速开始 环境准备 # 安装 Rust 工具链 rustup target add thumbv7em-none-eabihf rustup component add llvm-tools # 安装调试工具 cargo install probe-rs --features cli cargo install cargo-embed 编译 # Debug 编译 cargo build # Release 编译 (优化) cargo build --release 烧录运行 # 使用 probe-rs 烧录并运行 cargo embed # 或使用 cargo run cargo run --release 查看日志 # RTT 日志输出 probe-rs run --chip STM32F407VGTx target/thumbv7em-none-eabihf/release/rust-stm32-robot 📊 CAN 协议 波特率配置 波特率 Prescaler BS1 BS2 采样点 1Mbps 3 11 2 85.7% 500kbps 6 11 2 85.7% 帧 ID 分配 0x001 - 心跳帧 0x002 - 紧急停止 0x003 - 系统状态 0x100-0x10F - BMS 帧 0x1FF - 电机控制 (5-8) 0x200 - 电机控制 (1-4) 0x201-0x208 - 电机反馈 0x300-0x30F - 编码器数据 🔧 硬件连接 CAN 总线 STM32F407 CAN 收发器 (SN65HVD230) PA11 (CAN_RX) -> RXD PA12 (CAN_TX) -> TXD 3.3V -> VCC GND -> GND CAN 总线 CANH ----[120Ω]---- CANH (设备) CANL ----[120Ω]---- CANL (设备) LED 指示 LED GPIO 含义 绿色 PD12 系统正常 橙色 PD13 通信活动 红色 PD14 错误状态 蓝色 PD15 心跳指示 📈 性能指标 指标 目标值 实测值 CAN 响应延迟 ≤10ms ~2ms 主循环周期 1ms 1ms 电机控制周期 10ms 10ms 待机功耗 ≤50mA TBD 运行功耗 ≤200mA TBD 🧪 测试 # 运行单元测试 (需要 host 环境) cargo test --lib --target x86_64-apple-darwin # 硬件测试 cargo embed --example can_loopback 📝 许可证 MIT OR Apache-2.0 🤝 贡献 欢迎提交 Issue 和 Pull Request!