一文掌握STM32CubeMX配置PWM控制步进电机
创作时间:
2025-01-22 08:32:26
作者:
@小白创作中心
一文掌握STM32CubeMX配置PWM控制步进电机
STM32CubeMX是ST公司推出的一款图形化配置工具,可以帮助开发者快速配置STM32微控制器的外设和时钟。本文将详细介绍如何使用STM32CubeMX配置PWM输出以控制步进电机,包括系统时钟配置、定时器配置、引脚配置等具体操作,并提供完整的代码示例。
CubeMX配置步骤
打开CubeMX并选择自己的芯片版本
系统时钟(RCC)选择外部晶振(Crystal/Ceramic Resonator)
- 配置时钟
- 配置定时器为PWM输出模式,根据上一步配置的时钟频率72MHz设置预分频系数为18-1,设置计数周期为500-1。根据公式:PWM输出频率 = 定时器时钟频率 ÷ ((预分频系数+1) × (计数周期 + 1))计算得到,PWM输出频率为8kHz。
设置PWM输出引脚,此处使用默认的PA15引脚
电机转动方向引脚配置,此处配置为PF8,配置输出电平为高(high),开漏输出(Output Open Drain),上拉(Pull-up)。
项目生成配置,注意保存路径不要有中文
- 设置只拷贝使用到的库,分离.c和.h文件,然后生成代码完成CubeMX的配置。
代码实现
- 打开main函数配置如下代码,实现三秒正转,三秒反转
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 50); //修改占空比=50/计数周期(499)+1
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1); //使能TIM2的PWM CHANNEL_1输出
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_8, 1); //电机正转
HAL_Delay(3000);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_8, 0); //电机反转
HAL_Delay(3000);
}
/* USER CODE END 3 */
}
实验发现直接使用PF8引脚输出3.3V信号无法控制电机正反转(因为控制器需要5V信号驱动电机),采用外部上拉实现5V输出,此时需配置引脚为开漏输出且查看datasheet芯片手册tIO口号是否带有FT标识。必须带有FT标识才能通过开漏输出加外部上拉输出5V电平。外部上拉原理如下图所示。
实物连接图及运行视频
STM32控制步进电机转动
热门推荐
USNews vs QS:留学党必看的大学排名指南
南极之旅,你应该了解的那些事
黑车非法营运罪的认定标准及打击策略
公司打仲裁会怎么样:法律后果、程序及影响全解析
“行拘”和“刑拘”,有什么不同?有什么意义?
员工考评表中的评分标准如何制定才能公平?
最新研究发现:高摄入西兰花可降低36%的癌症风险
数据库日期查询最佳实践:从标准化到性能优化
专题 | Bosssoft:助力电子凭证业务革新,加速会计数字化转型
妇科B超什么时候做是最佳时间
Shell脚本中if语句的用法及实例详解
最新模拟揭示超新星冲击爆发的物理学原理
如何选择电商平台来建立电商网站
十款免费策略游戏推荐:让你玩到停不下来!
【量化策略】动量追踪策略
欠款500万起诉成立要判多少年
叶轮用什么编程软件好一些
汉匈交锋:汉武帝北击匈奴,铸就历史新篇章
如何使用工程考勤管理软件进行施工人员管理?
不续签合同年金怎么处理
遇到绑架时如何实施正当防卫
定期对家里进行断舍离幸福提升一倍
天外飞仙——白鹤
不敌中国车,日本车企巨头"新动作"
如何正确换算汽车匹和马力?这种换算对车辆性能有什么影响?
汽车马力的计算:从公式到实际应用的全解析
CentOS Root密码管理指南:设置、修改与恢复
基于树莓派的疲劳驾驶检测系统设计与实现
回顾:“最励志糖友”李鑫,智商倒数却成中考状元,复读考上清华
正念冥想:心灵的静谧之旅