STM32的IO不能直接驱动步进电机,至少也要加个达林顿管才行。
如果你有驱动器,一般驱动器也是使用脉冲来控制电机,而不是PWM,通过控制脉冲的频率来控制电机的速度。
不知道你的硬件到底是怎么弄得,所以很不好判断。
你可以从电机的驱动电流和你的脉冲频率是否太高的方向进行排查
io模拟的话不能保证波形符合要求,最好用定时器输出pwm,并且驱动步进电机需要加驱动器。