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的开启应在定时器初始化之后。

三、更多电机控制

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值