diff --git a/MDK-ARM/AutoGuideStick.uvguix.madao b/MDK-ARM/AutoGuideStick.uvguix.madao index 17e93d1..da46da5 100644 --- a/MDK-ARM/AutoGuideStick.uvguix.madao +++ b/MDK-ARM/AutoGuideStick.uvguix.madao @@ -110,8 +110,8 @@ 0 - 760 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000020000000100000036443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C436F72655C5372635C6170705F746872656164782E63000000000D6170705F746872656164782E6300000000C5D4F200FFFFFFFF2B443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C4843426C652E6300000000074843426C652E6300000000BECEA100FFFFFFFF29443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C6770732E6300000000056770732E6300000000BECEA100FFFFFFFF2B443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C4843426C652E6800000000074843426C652E6800000000F0A0A100FFFFFFFF31443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C5368616B655F4D6F746F722E63000000000D5368616B655F4D6F746F722E6300000000BCA8E100FFFFFFFF31443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C5368616B655F4D6F746F722E68000000000D5368616B655F4D6F746F722E68000000009CC1B600FFFFFFFF30443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C556C747261736F756E642E63000000000C556C747261736F756E642E6300000000F7B88600FFFFFFFF29443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C494D552E630000000006494D552E632A00000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000C40000006600000000060000B7020000 + 759 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000070000000100000036443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C436F72655C5372635C6170705F746872656164782E63000000000D6170705F746872656164782E6300000000C5D4F200FFFFFFFF2B443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C4843426C652E6300000000074843426C652E6300000000BECEA100FFFFFFFF29443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C6770732E6300000000056770732E6300000000BECEA100FFFFFFFF2B443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C4843426C652E6800000000074843426C652E6800000000F0A0A100FFFFFFFF31443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C5368616B655F4D6F746F722E63000000000D5368616B655F4D6F746F722E6300000000BCA8E100FFFFFFFF31443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C5368616B655F4D6F746F722E68000000000D5368616B655F4D6F746F722E68000000009CC1B600FFFFFFFF30443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C556C747261736F756E642E63000000000C556C747261736F756E642E6300000000F7B88600FFFFFFFF29443A5C616476616E63655F737469636B5C4175746F4775696465537469636B5C66756E5C494D552E630000000005494D552E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000C40000006600000000060000B7020000 @@ -1806,7 +1806,7 @@ File 2843 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000002000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000196D61696E5F636F6E74726F6C5F7468726561645F656E74727996000000000000001400196D61696E5F636F6E74726F6C5F7468726561645F656E74727915756C747261736F6E69635F7461736B5F656E74727903636D640B70617273655F696E6465781063757272656E745F6C6F636174696F6E0D646F5F67726F75705F6F6E636503627566024631085233385F504153530366726706646174615F560B667265655F6F75747075740A667265655F696E70757408667265655F50413706646174615F5007415F74696D657301690250580F5553415254305F4255465F53495A450A7278645F73636F6D6D300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000196D61696E5F636F6E74726F6C5F7468726561645F656E74727996000000000000001400196D61696E5F636F6E74726F6C5F7468726561645F656E74727915756C747261736F6E69635F7461736B5F656E74727903636D640B70617273655F696E6465781063757272656E745F6C6F636174696F6E0D646F5F67726F75705F6F6E636503627566024631085233385F504153530366726706646174615F560B667265655F6F75747075740A667265655F696E70757408667265655F50413706646174615F5007415F74696D657301690250580F5553415254305F4255465F53495A450A7278645F73636F6D6D300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1862,11 +1862,11 @@ 0 100 - 2 + 7 ../Core/Src/app_threadx.c 0 - 10 + 39 61 1 @@ -1883,9 +1883,9 @@ ..\fun\gps.c - 25 - 201 - 203 + 0 + 208 + 1 1 0 @@ -1919,18 +1919,18 @@ ..\fun\Ultrasound.c - 15 - 64 - 70 + 23 + 88 + 110 1 0 ..\fun\IMU.c - 40 + 0 1 - 15 + 5 1 0 diff --git a/README.md b/README.md index eae047c..a12aa08 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,91 @@ ## 日志 2025.6.4 -添加了Thread X 操作系统 \ No newline at end of file +添加了Thread X 操作系统 + +2025.6.25 +# README: STM32H563 ThreadX Embedded AI System + +## ✅ 当前已实现功能 + +本系统基于 STM32H563ZIT6 和 ThreadX 实时操作系统,模块化地实现了以下核心功能: + +### 1. BLE 通信模块(HCBle.c) + +* 支持 DMA + 空闲中断模式接收 +* 支持 JSON 指令解析与封装(如:`{"leftSpeed":X,"rightSpeed":Y}`) +* 支持 BLE 指令转事件 + 数据发送任务队列 + +### 2. GPS 定位模块(gps.c) + +* 支持 DMA + 固定长度接收 +* 提供位置数据 `lat/lon` 解析与格式转换 +* 冷启动支持(首次 GPS fix 时发送提示) + +### 3. IMU 模块(imu.c) + +* 模拟读取 X 轴角度(后续替换为实际驱动) 暂时还未完成 +* 结合 GPS 信息生成完整的 Location JSON 包发送至 APP + +### 4. 超声波避障模块(Ultrasound.c) + +* 支持 DWT 微秒延迟与定时捕获 +* 检测障碍 <30cm 自动触发蜂鸣器、震动器 + +### 5. 控制逻辑线程(Main\_Control) + +* 管理 BLE 控制与避障响应行为 +* 控制蜂鸣器与振动提示器 + +### 6. 多线程调度(ThreadX) + +* 所有任务通过 ThreadX 线程调度与事件中转完成解耦 +* BLE/GPS/IMU/Ultrasound 主从线程结构分离清晰 + +## 🚧 尚未实现或测试模块 + +| 模块 | 当前状态 | 说明 | +| ---------------- | ----- | ----------------------------------- | +| IMU 实际驱动 | ❌未实现 | 当前为模拟值 95°,需替换为传感器读取 | +| OpenMV 视觉模块 | ❌未接入 | 后续可通过 UART/USB 接口处理红绿灯识别 | +| 电机控制接口 | ❌未实现 | BLE 指令接收后尚未真正调用 `set_motor_speed()` | +| UI 显示 / APP 交互测试 | 🔄进行中 | JSON 包格式统一,需手机APP实际验证 | + +## 🗺️ 系统拓扑图参考 + +请参考:`ThreadX 系统结构图.png` +ThreadX 系统结构图 + +## 📋 开发环境配置说明 + +### 软件工具 + +* **IDE**:STM32CubeIDE / Keil MDK +* **RTOS**:ThreadX (via STM32CubeMX Middleware) +* **串口调试**:串口助手、BLE调试助手 + +### 编译配置 + +* 使用 `-O2` 优化选项 +* 启用 STM32CubeMX 中的 ThreadX 中间件 +* 打开 UART DMA + IDLE、定时器中断等相关配置 + +### 推荐硬件连接 + +* **GPS模块**:连接 USART2 (DMA + TC 中断) +* **BLE模块**:连接 USART1 (DMA + IDLE) +* **超声波模块**:使用 TIM2 输入捕获 +* **IMU模块**:I2C / SPI 接口(待扩展) +* **蜂鸣器与震动马达**:普通 GPIO 控制 + +## 🛠️ 接下来建议的开发步骤 + +1. **完成 IMU 驱动集成**:读取 MPU6050 / ICM20948 等传感器 +2. **实现电机控制接口**:将 BLE 指令转换为 PWM 或电机驱动调用 +3. **集成 OpenMV 模块**:红绿灯识别后通过事件机制上报 +4. **完善 APP 端联调**:调试 BLE 接收逻辑,验证 JSON 包格式 +5. **加入 Watchdog 与线程看门狗**:防止任务异常卡死 +6. **优化能耗管理**:使用 ThreadX 的 tickless 模式管理低功耗 + +--- + diff --git a/TuoPu.png b/TuoPu.png new file mode 100644 index 0000000..bdb3161 Binary files /dev/null and b/TuoPu.png differ