STM32+A4988+步进电机实现电机控制

 A4988电机驱动芯片参考:【STM32篇】4988驱动步进电机_hr4988-CSDN博客

 PWM占空比计算:PWM公式总结_pwm频率计算公式-CSDN博客

一、STM32CubeMX配置

  1. RCC开启外部高速时钟(略)
  2. 配置STLink调试口(略)
  3. 配置串口方便调试输出(略)
  4. 配置工程名、生成路径,之后生成工程(略)
  5. 配置PWM,打开TIM1的PWM通道4,时钟频率为72MHZ,配置预分频数72-1,重装载值1000-1,预装载值500。1ms定时器 =(72 * 1000)/ 72M,PWM占空比 = 500 / 1000。
  6. 配置芯片使能脚PA10,转动方向脚PA9

二、代码编写

1、PWM相关函数

参考破站:[STM32 HAL库][定时器]呼吸灯实验,最佳教程,没有之一~_哔哩哔哩_bilibili

HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);     // 开启PWM
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4);     // 关闭PWM 

__HAL_TIM_GET_PRESCALER(__HANDLE__);                        // 读PSC

__HAL_TIM_SET_PRESCALER(__HANDLE__, __VAL__)         // 写PSC

__HAL_TIM_GET_COUNTER(__HANDLE__);                            // 读CNT

__HAL_TIM_SET_COUNTER(__HANDLE__,VAL);                     // 写CNT

__HAL_TIM_GET_AUTORELOAD(__HANDLE__);                     // 读 ARR

__HAL_TIM_SET_AUTORELOAD(__HANDLE__,VAL);              // 写 ARR

__HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__);                         // 读CCR

__HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__);// 写CCR

2、修改main函数

在main函数初始化中加入HAL_TIM_PWM_Start()即可驱动电机转动,修改定时器的频率可控制电机的转动快慢。

注意:PWM的开启应在定时器初始化之后。

三、更多电机控制

源码中简单的实现:按角度旋转,按时间旋转,设置电机旋转速度,有需要的可以下载源码。

作者:决战嵌入式

物联沃分享整理
物联沃-IOTWORD物联网 » STM32+A4988+步进电机实现电机控制

发表回复