一、准备(开工前 30 分钟)
| 项 | 要求 |
| 电脑 | Windows,装 STC-ISP(官网最新版)+ Keil C51 |
| 下载器 | USB-TTL(CH340),RXD↔TXD 交叉 |
| 电源 | 24 V / 10 A 开关电源,先空载测压 |
| 文件 | dance.c dance.h MainSlave.c blade_control.c/h |
| 工具 | 万用表、示波器(可选)、120 Ω 终端电阻 ×2 |
二、烧录参数(必须一致)
| 参数 | 设置 |
| 芯片 | STC12C5A60S2 |
| 晶振 | 11.0592 MHz |
| 波特率 | 9600(与 uart_init(9) 对应) |
| 从机地址 | 1–24,逐块改 SLAVE_ID 后重新编译 |
三、8 步流程
| 步 | 动作 | 判定 / 现象 |
| 1 | Keil 新建工程,加入 4 个源文件,编译 | 0 Error 0 Warning |
| 2 | STC-ISP 打开 hex,点“下载”,再给板子上电 | 提示“操作成功” |
| 3 | 改 SLAVE_ID 1→24,逐块烧(每块约 5 min) | 24 块全部成功 |
| 4 | 烧主控(MainHost) | LCD 显示待机 |
| 5 | 接 24 V,万用表测母线 | 23.5–24.5 V,反接立即断电 |
| 6 | RS485 接上,两端各加 120 Ω | 示波器看 A/B 差分 ≥1.5 V |
| 7 | 发第 1 段:send_dance.py --dance 1 | 30 片同步起波,无卡顿 |
| 8 | 连发 1→5 段,再测安全联锁 | 5 段全通;风速≥0.1 拒绝;急停 <0.5 s 断电 |
四、常见故障(现场 5 条)
| 现象 | 原因 | 处理 |
| STC-ISP 认不到芯片 | RXD/TXD 接反、未冷启动 | 对调两根线;点下载后再上电 |
| 从机不动作 | 地址冲突 / 缺终端电阻 | 逐块断开排查;总线两端补 120 Ω |
| 电机抖动不走 | 脉冲频率过高 / 细分不对 | 降到 10 kHz;细分设 1600 |
| 角度方向相反 | 相序接反 | 对调 A+ / A− |
| 段间跳变 | 相位未清零 | 发帧时 phase 传 0 |
五、远程协助方式
| 场景 | 怎么做 |
| 烧录报错 | 拍 STC-ISP 界面截图发我,我看提示码判断 |
| 电机异常 | 录 10 秒视频(含声音),我听节奏判断丢步 |
| 通信不通 | 发 send_dance.py --self-test 输出(6 行 CRC) |
| 需要改参数 | 告诉我现象,我改完把 hex / 参数发你 |
时间安排:12-16(周三)09:00 开始烧从机 → 12:00 完成;14:00 主控+上电自检 → 18:00 完成;12-17 上午 5 段联调 + 安全联锁复测。
我全程在线,你发截图即可。