简介:《基于STM32G4电机控制基础篇》是一份面向STM32G4平台电机控制初学者与嵌入式工程师的PDF技术资料,重点解决ST电机控制生态不熟悉、FOC工程搭建与代码移植路径不清等问题。资料围绕ST电机控制生态、MC SDK生成STM32G4电机FOC代码、基于CubeMX移植电机控制代码三条主线展开,涉及电机分类、Workbench创建工程、Demo板与功率板选择、Customer Board配置以及数字/模拟端口设置等关键环节。包内共1个PDF文件,大小约3.64MB,便于在电脑或移动端直接查阅。已有900人学习,说明其在STM32电机控制入门群体中具有一定参考价值。读者可从中了解从工程生成、参数配置到运行控制的完整工具链脉络,并掌握结合CubeMX与Workbench为STM32G474RET6等芯片建立电机工程的基本方法,适合作为FOC入门与移植实践的案头参考。
1. 电机控制没你想的那么玄:一块 STM32G4 到底在忙什么
很多人第一次搜 stm32 电机控制,屏幕上会弹出一堆词:FOC、PMSM、六步换相、电流环、SVPWM,看两眼就想关页面。先把话说白:电机要转,本质就是按顺序给几组线圈通电,让磁场“推”着转子往前走;STM32G4 干的活,就是决定“什么时候、给哪组线圈、通多大的电”,而且一秒钟要算上万次。它是一颗内置高速 ADC、运放和高级定时器的微控制器,天生就是为这种活设计的。这套资料要带你做的,是借助现成的软件工具,先不手写一行控制算法,让一台小电机稳稳转起来,再回头慢慢看懂里面到底发生了什么。它适合刚接触嵌入式、想做出“第一个转起来的电机”的新手。
2. 先把三个词认全:FOC、MC SDK、Workbench 各管哪一段
新手最容易被劝退的地方,是一上来就被术语砸懵。这一章不深挖数学,只把三个高频词和它们的关系捋清楚。你可以把整套东西理解成开一家小饭馆:电机是客人点的菜,FOC 是做菜的工艺,MC SDK 是配好的半成品和厨具,Workbench 是那台点菜下单的平板。四样东西各有各的位置,混着看就会乱。
2.1 电机家族先扫一眼:你要转的是哪一种
在动手之前,先确认自己手里那台电机属于哪一类,因为不同类型的电机,驱动方式差别很大,代码完全不能通用。日常能碰到的电机,大致可以按下面的方式分类:
| 大类 | 细分 | 特点 | 常见驱动方式 |
|---|---|---|---|
| 直流电机 | 有刷直流 | 两根线,通电就转,最简单 | 直接调电压或 PWM |
| 通用电机 | 交直流两用 | 常见于小家电 | 可控硅或 PWM |
| 交流电机 | 同步电机 | 转速跟频率严格对应 | 变频驱动 |
| 交流电机 | 异步(感应)电机 | 结构结实,工业上量大 | 变频驱动 |
| 步进电机 | 步进 | 走固定角度,开环定位 | 脉冲+方向 |
| 特种电机 | 开关磁阻、可变磁阻 | 结构简单,控制复杂 | 专用驱动 |
| 永磁电机 | PMSM(用 FOC 驱动) | 效率高、噪音低、运行平稳 | FOC 矢量控制 |
| 永磁电机 | BLDC(用六步换相驱动) | 成本低、控制简单 | 六步换相(6-Step) |
表格里最后两行,就是这套资料的主角。PMSM 和 BLDC 在外观上可能长得很像,定子上都是三相绕组,转子上都有永磁体,但驱动思路完全不同:BLDC 习惯用六步换相,任何时刻只给两相通电,第三相悬空,控制简单但换相时有明显的转矩波动;PMSM 则更常配 FOC,三相同时通电,靠坐标变换把电流拆成“产生转矩的分量”和“不产生转矩的分量”,分别控制。
新手最常见的困惑是:“我手上这个小电机到底算哪种?”一个粗略的判断办法是看引线。只有两根线的,基本是有刷直流;有三根粗线(可能还带五根细线霍尔)的,是三相无刷电机。再具体到 PMSM 还是 BLDC,看反电动势波形最准,但入门阶段不用纠结这个,Workbench 里选电机类型时按你买电机时标注的参数填就行,实在不确定就先按 BLDC 试,转起来再说。我第一次接触时也在这卡了半天,后来发现选错了顶多是转得不顺,改回来重生成一次代码就好,没有什么无法挽回的后果。
2.2 FOC 到底好在哪:为什么不是简单通断电
如果只是“通电就转”,那用有刷电机加个电位器就够了。问题在于,很多场景要求电机低速平稳、噪音小、效率高、能精确控制转矩,这时候简单通断电就不行了。
打个比方:六步换相像是推一扇旋转门,你隔一段时间用力推一把,门确实会转,但每次推的瞬间力道大,中间有间隔,门会一顿一顿的;FOC 像是你把手一直贴在门上,跟着门的转动持续均匀地用力,门就转得又稳又顺。落到电机上,六步换相任何时刻只有两相在工作,电流是“跳变”的;FOC 让三相电流按正弦规律连续变化,合成出一个大小方向都可控的旋转磁场,转矩脉动小,低速性能好,噪音也低。
为了实现这个效果,FOC 内部要做几件事:采样三相电流,用 Clarke 变换把三相压成两相,再用 Park 变换把旋转坐标系的东西搬到静止坐标系上,得到直轴电流和交轴电流,然后分别做 PI 调节,最后用 SVPWM 把控制量变回六路 PWM 去驱动功率管。这套流程听起来吓人,实际上全是固定套路,固定到可以完全交给软件生成——这也是为什么新手完全可以从“用工具生成”开始,而不是先啃完公式。
这里有个心态上的建议:第一遍学,先接受“它就是这么做”的结论,把电机转起来,看到波形、摸到转速,再回头一个个查这些变换的名字。上来就死磕推导,很容易在第三步就放弃。
2.3 MC SDK 和 Workbench 的分工:一个是发动机,一个是方向盘
这套工具链里,X-CUBE-MCSDK 是真正的“电机控制开发软件平台”,它包含算法库、底层驱动、以及一大套和具体芯片绑定的配置文件。你可以把它理解成发动机总成:该有的零件都在里面,但你不能直接用手去转它。
Motor Control Workbench 则是那个方向盘和中控台。它是 MC SDK 里带图形界面的配置工具,你在这个界面上选板子、选功率板、选电机、填参数,它负责把这些选择翻译成 MC SDK 能看懂的一堆配置文件,然后一键生成一个可以编译的完整工程。
运行阶段还有两个容易混淆的角色:Motor Profiler 是专门用来“摸电机脾气”的,你给它一台参数未知的电机,它能自动测出电阻、电感、反电动势常数这些参数,省得你自己拿表去量;Dashboard 是生成工程后用来实时看波形的面板,能看到通信链路状态、电流、转速,还有几个电机控制按钮,用来启停和调速。
一句话记住分工:SDK 提供能力,Workbench 负责配置,生成的工程负责跑,Dashboard 负责看。新手把这条线理顺了,后面每一步操作都知道自己在干什么,而不是照着截图点下一步。
3. 装软件别嫌烦:把工具链一次配到位
这一章看起来最没技术含量,但它决定了你后面两小时是顺利看到电机转,还是对着一堆编译错误怀疑人生。有句话说得好,环境问题是最没有成就感的坑,因为它不教你任何东西,只消耗你的耐心。所以宁可花二十分钟一次装对,也别图快。
3.1 四样东西缺一不可:SDK、CubeMX、调试器、IDE
先看清单,确认手里都有:
| 类别 | 具体 | 作用 | 备注 |
|---|---|---|---|
| 电机控制软件 | X-CUBE-MCSDK 或 X-CUBE-MCSDK-FUL | 提供算法库和 Workbench | FUL 是完整版,功能更全 |
| 芯片配置工具 | STM32CubeMX(v5.6 以上)及对应固件库 | 配引脚、时钟、外设,生成初始化代码 | 后面做移植时离不开 |
| 调试器 | ST-LINK/V2 或 ST-LINK/V3 | 把程序下载进芯片、在线调试 | 板载的也算 |
| 编译环境 | IAR Embedded Workbench for Arm(v8.x)/ Keil MDK v5.x / Atollic TrueSTUDIO 9.0.0 | 编译生成的工程 | 任选一个,别贪多 |
这四类里,新手最容易漏的是固件库。CubeMX 本身只是个配置器,真正的芯片驱动代码在固件包里,第一次打开 CubeMX 时它会提示你下载对应系列的包,别点跳过,否则后面生成代码会报缺文件。
IDE 选哪个?我的建议是:你电脑上已经装了哪个就用哪个,别为了这篇内容专门换。Workbench 生成工程时可以直接选目标 IDE,Keil、IAR、TrueSTUDIO 都支持,生成的工程结构略有差别,但里面的业务代码是一样的。真要给个倾向,Keil 在国内资料多、装起来轻;IAR 编译优化好但装包大;TrueSTUDIO 是基于 Eclipse 的,界面熟的人上手快。
3.2 安装顺序和路径:中文路径是最常见的翻车点
顺序上,先装 IDE,再装 CubeMX,最后装 MC SDK。原因很实在:MC SDK 安装过程中会去检测你机器上有没有可用的 IDE 和 CubeMX,如果它扫不到,安装完可能缺一些集成脚本,后面生成工程时就得手动补。
路径这件事必须单独强调一遍。CubeMX 请不要安装在中文路径下,同样,MC SDK 的安装目录、你的工程目录,最好也不要有中文和空格。这不是玄学,是血泪经验:很多工具链内部用的是相对路径拼接和命令行传参,一旦路径里出现中文,轻则生成代码时报“找不到文件”,重则编译到一半莫名其妙失败,报错信息还完全指不到真正的原因,查半天查不出来。
推荐的目录结构长这样,简单、全英文、层级浅:
D:/STM32/CubeMX/ # 芯片配置工具 D:/STM32/MCSDK/ # 电机控制 SDK D:/STM32/Workspace/ # 你自己的工程都放这下面用脚本快速检查一下路径里有没有混入中文或空格,比肉眼扫一遍可靠:
# 检查几个关键安装路径是否含有非 ASCII 字符或空格 # 这两类字符是工具链报"文件找不到"的高发原因 paths = [ r"D:/STM32/CubeMX", r"D:/STM32/MCSDK", r"D:/STM32/Workspace", ] for p in paths: bad_char = [ch for ch in p if ord(ch) > 127] # 非 ASCII,基本就是中文或全角符号 has_space = " " in p if bad_char or has_space: print("需要改:", p, "非ASCII:", bad_char, "含空格:", has_space) else: print("没问题:", p)这段脚本只做一件事:把每个路径逐字符检查一遍,凡是编码值大于 127 的字符都算可疑,再单独看有没有空格。跑完发现哪一行提示“需要改”,就换一个纯英文目录重装,别试图用改注册表的方式绕过去,绕过去的坑往往在后面等着。
提示:如果你的 Windows 用户名本身是中文,桌面、文档这些默认路径也会带中文,工程千万别建在桌面,直接在 D 盘根目录下新建一个英文文件夹。
3.3 装完先做一次自检
装完别急着建工程,先花三分钟确认三件事。第一,打开 CubeMX,看看能不能正常新建工程并选到 STM32G4 系列,如果列表是灰的,说明固件包没下全。第二,打开 MC SDK 里的 Motor Control Workbench,看界面能否正常启动、板卡列表能否加载出来,加载不出来通常是 SDK 版本和 Workbench 不匹配。第三,把 ST-LINK 插上电脑,在设备管理器里确认驱动正常,没有黄色感叹号。
三件事都过了,再进入下一步。这套自检看着啰嗦,但它把“环境问题”和“操作问题”提前分开了,后面出问题时你至少能确定不是环境导致的,排查范围一下小一半。
3.4 资料和方案去哪里查
入门阶段最大的信息优势,是知道该去哪找现成答案。官方渠道里有三类东西值得收藏:一是电机培训资料的下载页,通常包含整套的入门文档和实验指导;二是电机控制方案查询页,可以按芯片型号、功率等级、电机类型筛出对应的参考设计;三是配套的培训视频,跟着看一遍比读十页文档直观。
另外,Workbench 里本身就带着不少 Demo 工程,这些 Demo 是最好的学习材料。你不需要一上来就搞懂每个参数的含义,先把 Demo 跑通,再对照着改一个参数看现象变化,这种“改一下、看一眼”的循环,比从头读手册效率高得多。
4. 第一个工程跑起来:从 Workbench 生成 FOC 代码到电机转第一圈
到这一章,前面所有的准备都开始兑现。整个流程可以概括成一句话:在 Workbench 里把“我用的是什么板子、什么功率板、什么电机”告诉它,它生成工程,你编译下载,电机就转。听起来简单,中间有几个地方需要你理解自己在选什么。
4.1 在 Workbench 里新建工程:选板子、选功率板、选电机
打开 Workbench,新建工程时会让你先选硬件组合。如果你手上是成套的官方开发套件,比如本例用的 P-NUCLEO-IHM03,那就在列表里直接找到对应型号,一步到位。选完之后,Workbench 会自动把控制板、功率板、电机三者的默认参数填好,包括电流采样方式、母线电压范围、编码器或霍尔接口、PWM 引脚分配。
这一步的价值在于:它替你完成了最容易出错的那部分工作。电机控制对引脚的要求很死,六路 PWM 必须来自同一个高级定时器的互补通道,电流采样要跟 ADC 触发源对齐,死区时间要跟功率管匹配。这些如果手配,新手几乎不可能一次对。选官方套件等于直接跳过这一整块。
如果你用的是自己的板子,也没关系,后面 4.5 节会讲怎么走“自定义板”的路线。入门阶段强烈建议先用一套已知能工作的硬件跑通,再换自己的,否则硬件和软件问题混在一起,你根本分不清是谁的错。
4.2 生成代码前先看懂那几个参数
选完硬件,Workbench 会让你确认一堆参数。新手看到这么多输入框容易直接点“下一步”,但有几个值值得停下来看一眼,因为它们直接决定电机能不能正常启动:
- 极对数:电机铭牌上通常写作“极数”,极数除以 2 就是极对数。填错会导致转速显示差好几倍,但电机还是照转,属于典型的“看起来没问题其实错了”的参数。
- 最大电流与母线电压:这两个值决定保护阈值。填得比实际硬件能承受的大,起不到保护作用;填得太小,电机一启动就报过流。
- 电流采样电阻与运放增益:影响电流采样的换算系数,填错了转矩控制会失准。
- 启动参数:包括对齐时间、开环加速斜率等。电机启动时转子位置未知,需要先通一个固定方向的电流把转子“吸”到已知位置,再切进闭环。
这些参数不知道填什么怎么办?两条路:一是用 Motor Profiler 自动测,接上电机让它跑一遍识别流程,电阻、电感、反电动势常数都能测出来;二是查电机手册,一般厂家会给。两条路都不通,就先按 Workbench 的默认值试,能转起来再微调,别在参数上卡住。
4.3 生成工程并编译下载
参数确认完,点生成。Workbench 会让你选目标 IDE 和工程保存位置,这里再次提醒:路径别带中文。生成完成后,用你选的 IDE 打开工程,先不做任何修改,直接编译一次。
编译通过后,把调试器接到板子上,下载程序。下载完成后给功率板上电——注意顺序,先下载再上电,避免上电瞬间程序还没跑起来,功率管状态不确定。上电后如果板子上的状态灯按预期闪烁,说明程序跑起来了。
4.4 让电机转起来:串口控制与 API 控制两条路
程序跑起来只是第一步,真正让电机转,有两条路。
第一条是 Dashboard 串口控制。Workbench 生成的工程里带了一套串口通信协议,你在电脑上打开 Dashboard,选对串口和波特率,连上之后能看到实时波形,界面上有启动、停止、调速的按钮。这条路适合第一次验证,因为你不用改一行代码,点按钮就能看到电机响应。连接时注意看通信链路状态,如果一直是未连接,八成是串口号选错或者波特率不对。
第二条是用 API 函数控制,这条路更接近实际项目。SDK 提供了一组封装好的接口,放在 mc_api.c 里,你在自己的代码里调几个函数就能控制电机。比如下面这段:
/* 放在 main 循环之前的初始化之后,作用是让电机按设定的斜率加速到目标转速 */ MC_ProgramSpeedRampMotor1(300, 1000); /* 参数1:目标机械转速,单位 RPM 参数2:从当前速度加速到目标速度的时间,单位 ms */ MC_StartMotor1(); /* 启动电机 1,进入运行状态 */MC_ProgramSpeedRampMotor1不是直接把转速设成 300,而是给了一个“斜坡”:从当前速度平滑过渡到 300 转,用 1000 毫秒走完。为什么要有斜坡?因为电机带着负载突然加速,电流会瞬间冲高,容易触发过流保护,机械上也会有冲击。第二个参数调大,加速更柔和;调小,响应更快但冲击更大。
运行起来之后,通常还要读状态和转速:
/* 在主循环里周期性调用,判断电机是否已进入运行态并读取实际转速 */ if (MC_GetSTMStateMotor1() == RUN) { int16_t speed_rpm = MC_GetMecSpeedAverageMotor1(); /* 返回平均机械转速,单位 RPM */ /* 这里可以接显示、上报、或者做上层逻辑判断 */ }MC_GetSTMStateMotor1返回的是状态机的当前状态,除了 RUN,还有 IDLE、START、STOP 等,用状态判断而不是用时间判断,是这类代码的基本习惯。MC_GetMecSpeedAverageMotor1返回的是经过平均处理的机械转速,比瞬时值稳定,适合做显示。注意它是int16_t,有正负,反转时是负数。
想停下来,调MC_StopMotor1()即可。不要直接断电,正常停机流程会让电机按设定方式减速,避免母线电压泵升。
4.5 芯片不在列表里怎么办:CubeMX 移植思路
Workbench 里能直接选的芯片型号是有限的,实际项目里用的芯片往往不在列表里。这时候就要把 CubeMX 拉进来配合。
思路是这样的:Workbench 里可以创建一个“自定义板”工程,功率板和电机仍然选现有型号(因为这两者的参数是通用的),芯片型号则选一个“最接近”的作为参考。生成工程后,用 CubeMX 打开这个工程的配置文件,把芯片型号改成你实际用的那颗,然后重新配置时钟和引脚。
改的时候有几类引脚必须逐一核对:数字口主要是定时器引脚、控制引脚、串口;如果电机带传感器,还要配编码器接口和霍尔信号输入。模拟口主要是电流采样、母线电压采样、温度采样。每一项都要对照原理图确认,不能想当然——引脚配错的直接后果是 PWM 输出到了错误的管脚,电机要么不动,要么乱转。
本例里用的组合是 STM32G474RET6 控制板配 X-Nucleo-IHM16M1 功率板和 GBM2804H-100T 电机,思路是一样的:先在 Workbench 里用相近型号生成骨架,再用 CubeMX 把芯片型号和外设配置改到位,最后回到 IDE 编译下载。这套“Workbench 出骨架、CubeMX 改细节”的组合,是实际项目里最常用的做法,值得在入门阶段就练一遍。
5. 新手最容易翻车的五个地方:现象、原因和补救
这一章的内容,全是我希望有人在最开始就告诉我的。每一条都按“你看到什么现象、背后是什么原因、怎么解决”的顺序讲,遇到问题时可以直接拿来对号。
5.1 坑一:生成工程报错,提示找不到文件
现象:在 Workbench 里点生成,进度条走到一半报错,提示某个文件路径不存在;或者打开生成的工程,编译器说某个头文件找不到。
原因:九成是路径问题。安装目录或工程目录里带了中文、空格、或者过长的层级。工具链内部拼接路径时对这类字符处理不好,报错信息又只告诉你“找不到”,不告诉你是哪个字符导致的。
解决:把所有相关目录移到纯英文、无空格、层级尽量浅的位置,比如D:/STM32/Workspace。移完之后不要直接沿用旧工程,重新生成一次,因为旧工程里可能已经写死了绝对路径。这一步虽然要重来一遍,但比逐个改配置文件快。
5.2 坑二:程序下载进去了,电机就是不转
现象:编译下载都成功,板子上的灯也正常,Dashboard 能连上,但点启动按钮电机纹丝不动,也没有异响。
原因:按出现频率排,依次是:功率板没上电、使能信号没拉起来、电机三相线没接好、目标转速设成了 0。新手最容易忽略的是功率板供电——控制板靠 USB 就能跑,功率板需要单独接直流电源,很多人忘了这一步。
解决:按顺序查。先量功率板的母线电压有没有;再看 Dashboard 上的状态机停在哪个状态,如果一直停在 IDLE 不进入 START,多半是启动条件不满足,比如母线电压低于设定阈值;然后检查三相线,拔下来重插一遍,注意不要带电插拔;最后确认你下发的目标转速不是 0。
5.3 坑三:一启动就报过流,反复重启
现象:点启动的瞬间电机抖一下,然后立刻停机,Dashboard 上报过流或者过压故障。
原因:常见的有三种。一是电流采样参数填错了,比如采样电阻值或运放增益,导致算出来的电流比实际大好几倍;二是启动参数太激进,加速时间设得太短,启动电流冲得太高;三是电机参数不对,尤其是极对数和电感,会让控制环的输出失控。
解决:先把加速时间调长,比如从 500 毫秒改成 2000 毫秒,看是否能起来,这一步能快速排除“参数太激进”这个原因。如果还是过流,就去核对电流采样相关的配置,对照原理图确认采样电阻和增益。最后用 Motor Profiler 重新测一遍电机参数,不要凭手感填。
5.4 坑四:电机能转,但噪音大、发热明显
现象:电机转起来了,转速也对,但声音明显比预期大,运行几分钟外壳就发烫。
原因:优先怀疑电机类型选错。PMSM 和 BLDC 的驱动方式不同,把 BLDC 当 PMSM 用 FOC 驱动,或者反过来,都能转,但效率和噪音会明显变差。其次是电流环参数不适合,比例增益偏大导致电流振荡。还有一种可能是载波频率设得太低,人耳能听到 PWM 的啸叫声。
解决:先确认电机类型,查手册或者看反电动势波形,选错了就回去改配置重新生成。噪声是高频啸叫的话,适当提高 PWM 载波频率,但注意别超过功率管的开关能力。发热问题如果伴随噪音一起出现,基本就是驱动方式不匹配,改对之后通常两个问题一起消失。
5.5 坑五:改了代码,重新生成后自己的修改全没了
现象:在生成的工程里辛辛苦苦写了几百行上层逻辑,某天回 Workbench 改了个参数重新生成,代码全被覆盖回去。
原因:Workbench 生成的工程里,有一部分文件是“每次重新生成都会重写”的,比如外设初始化和电机配置文件。如果你把业务代码写在这些文件里,重新生成必然被冲掉。
解决:养成习惯,自己的代码写在单独的文件里,或者写在生成工具保留的用户代码区(通常会有USER CODE BEGIN/USER CODE END这类注释标记,标记之间的内容不会被覆盖)。另外,工程第一次跑通之后立刻做一次备份,或者放进版本管理,这样即使被覆盖也能找回。这个后悔药,吃过一次就再也不想吃第二次。
6. 下一步学什么:从“能转”到“转得稳”的三级台阶
电机转起来的那一刻很爽,但真正的学习从这里才开始。后面怎么走,我建议按三级台阶来,每一级都有明确的验收标准,不要跳级。
| 台阶 | 目标 | 要学的东西 | 验收标准 |
|---|---|---|---|
| 第一级 | 会配、会跑 | Workbench 各项参数含义、Dashboard 看波形、mc_api 常用接口 | 能不看教程把一套新硬件配起来并跑通 |
| 第二级 | 会看、会调 | 电流环与速度环的作用、PI 参数怎么影响响应、故障码含义 | 能通过调参让电机噪音和发热明显下降 |
| 第三级 | 会改、会扩 | 坐标变换的基本推导、SVPWM 原理、位置环与无感启动 | 能在一套自制硬件上完成闭环控制 |
第一级的关键是脱离教程。找一套和教程里不一样的硬件,从选板子开始,自己把工程配出来。这一步会逼着你真正理解每个参数在说什么,而不是照着截图点。我第一次独立配的时候,光引脚核对就花了两小时,但那次之后再没在引脚上出过错。
第二级建议从“改一个参数、看一次波形”开始。比如把速度环的比例增益调大一倍,观察转速响应变快的同时电流波动变大;再调小一半,看响应变慢。Dashboard 上的波形是最好的老师,它把黑匣子里发生的事画出来了,你要做的就是学会读它。这个阶段不用急着看公式,先把“调大什么会怎样”的因果关系建立起来。
第三级才需要回头补理论。这时候你的脑子里已经有一堆具体现象了,再去看 Clarke 变换、Park 变换,就不是抽象符号,而是“哦,原来那两条曲线是这么来的”。顺序反过来,先啃公式再看现象,效率会低很多。
还有一个具体建议:给自己准备一份“故障记录”。每次电机不转、报错、异响,把现象、你猜的原因、实际原因记下来。这份记录积累到二十条左右,你对这套系统的理解会超过读十篇教程。从那以后我每次上电之前都强制走一遍检查清单——母线电压、三相线、状态机状态、目标转速,四样确认完再点启动。看起来啰嗦,但省下的时间远比花掉的多。希望帮到你。
本文还有配套的精品资源,点击获取