解决STM32下步进电机无法转动的问题
步进电机无法转动问题解决
现象
输出比较模式/PWM模式下下,设置好pulse, dir和enable通道,编译器正常烧录,电机轴锁住,会有微微的蜂鸣声,有时候又会有点震动,但电机不转动。
调试
1.电机轴能够锁住,说明enable已经使能成功
2.相同的pwm波形,用二极管代替电机,二极管发光,说明可以输出PWM波形。同理,利用keil的仿真模式,显示波形输出引脚的波形图,可以看到PWM波形,也印证了波形是可以输出的
3.利用keil debug模式,观察GPIO在key按下时的状态变化,证明key生效。在key按下时,里面的程序换成串口输出信息,同样证明key GPIO生效。
4.检查驱动器电源和驱动器之间的连接,我用的是一根杜邦线,电流太小,把杜邦线换成5A线,电机依旧没转
5.检查程序,例程对应为32细分,驱动器没有设置成32细分。将驱动器设置成32细分后,电机依旧没转
6.怀疑是驱动器on/off上拨还是下拨搞反,找到商家技术确认,确认搞反(之前商家销售说的是反的),将on/off状态弄对后,电机已经可以平稳转动了。
总结
1.先检查各引脚设置以及生效
2.步进电机驱动器上的细分一定要能和程序中PWM的频率对上
作者:大杯啤酒