first upload

This commit is contained in:
2026-04-30 18:15:28 +08:00
commit 9ad0307810
234 changed files with 214716 additions and 0 deletions

48
README_重写说明.txt Normal file
View File

@@ -0,0 +1,48 @@
这个包是基于你上传的 motor_control_board_V1.2 工程做的“可直接替换版”。
我保留了 CubeMX 生成的外设初始化文件结构,重点重写了你自己的应用层逻辑:
- Core/Src/app_init.c
- Core/Src/app_freertos.c
- Core/Src/attitude.c
- Core/Src/callback.c
- Core/Src/car_move.c
- Core/Src/mpu6050.c
- Core/Src/readpin.c
- Core/Src/variables.c
- Core/Inc/variables.h
主要修复点:
1. 串口帧解析改为状态机,支持重新同步,只接受 0F xx xx F0且中间两字节必须是 01~04。
2. UART 接收中断启动移到 UART 任务里,避免任务句柄未注册时丢第一帧。
3. 电机控制重写为“左电机/右电机”两套独立模式解析,逻辑更清晰。
4. ADC 任务启动时先做 HAL_ADCEx_Calibration_Start 校准,再做 8 次平均采样。
5. 电池电压增加 battery_voltage 变量,显示时直接看实际电池电压(按 *11 分压比换算)。
6. MPU6050 支持自动探测 0x68 / 0x69 两个地址;初始化失败会显示 P:ERR。
7. 姿态任务支持掉线重试,不会一直静默为 0。
8. ReadPin 改成显式位掩码写法,保持和你原车控编码兼容,但去掉了原先晦涩的连环左移。
9. OLED 刷新时先清屏,避免显示残影和旧数字残留。
使用方法:
- 最简单:直接把这个包里的整个 Core 文件夹覆盖到你的工程里。
- 如果你只想替换我重写过的文件,也可以只替换上面列出的那些文件。
上板后建议按下面顺序验证:
1. 上电看 OLED
- 如果串口没发数据,应显示 S:0 0
- 如果 ADC 正常,应显示 V:x.x
- 如果 MPU 正常,应显示 P:x.x否则显示 P:ERR
2. 电脑发原始 4 字节 HEX0F 01 04 F0
- OLED 应显示 S:1 4
3. 按按钮
- 电机应按左右轮分别动作
4. 摇晃板子
- P: 数值应变化
5. 检查电源电压
- V: 不应长期固定为 0.0
仍然可能需要你继续检查的硬件项:
1. MPU6050 是否真的接在 I2C1且 AD0 是接地还是接高电平。
2. I2C 的 PB8/PB9 是否有上拉。
3. ADC 的 PA0 是否真的接到了分压输出,而不是悬空或接错通道。
4. 电脑串口工具是否发的是“原始字节流”,不是字符串 "0F0104F0"。