STM32驱动SG90舵机全攻略:从波形生成到实战应用(中上) | 零基础入门STM32第八十三步

主题内容教学目的/扩展视频
舵机控制电路连接,驱动原理,驱动程序,调用控制。能写入角度值,为小车开发做准备。

师从洋桃电子,杜洋老师



回顾上期🔍STM32驱动SG90舵机全攻略:从原理到代码实现(上) | 零基础入门STM32第八十二步


一、PWM技术应用场景全景图

1.1 核心应用领域

应用领域典型场景PWM作用原理
电机控制舵机/直流电机调速调节占空比控制转速/扭矩
LED调光智能照明系统改变亮度等级
音频合成数字音乐播放器波形重构与频率调制
电源管理DC-DC转换器电压精准调控
通信系统红外遥控信号数字信号载波调制

二、PWM波形生成核心原理

2.1 基础概念图解

计数值 < CCR
计数值 >= CCR
时钟源
预分频器
计数器
比较判断
输出高电平
输出低电平

2.2 关键参数定义

参数名称符号表示物理意义
周期(T)ARR完整波形重复时间(20ms典型值)
占空比(Duty)CCR/ARR高电平时间占比(0%-100%)
频率(f)1/T波形重复速率(50Hz典型值)

三、STM32定时器PWM生成机制

3.1 定时器架构解析

核心组件工作原理

  1. 时钟源:提供基准时钟信号(如72MHz)
  2. 预分频器:将时钟分频得到计数步长
  3. 计数器:周期性递增/递减计数
  4. 自动重载寄存器(ARR):定义计数周期
  5. 捕获/比较寄存器(CCR):设定电平翻转点

3.2 PWM生成流程

时钟源 预分频器 计数器 比较器 GPIO 输入基准时钟 分频后时钟 计数值+1/-1 当前计数值 与CCR值比较 输出高电平 输出低电平 alt [计数值 < CCR] 达到ARR值时复位 loop [每个时钟周期] 时钟源 预分频器 计数器 比较器 GPIO

四、关键参数配置方法论

4.1 周期(ARR)计算公式

周期公式
在这里插入图片描述

配置示例(生成50Hz PWM):

当F_{clk}=72MHz时:
ARR = \frac{F_{clk}}{F_{PWM} \times (PSC+1)} - 1
取PSC=71,则:
ARR = \frac{72,000,000}{50 \times 72} - 1 = 1999

4.2 占空比(CCR)设置规范

控制需求CCR计算公式应用示例
0%占空比CCR=0完全关闭输出
50%占空比CCR=ARR/2对称方波生成
100%占空比CCR=ARR持续高电平输出
动态调节CCR∈[0,ARR]电机无级调速

五、高级应用扩展设计

5.1 多通道PWM同步

TRGO信号
TRGO信号
TRGO信号
主定时器
从定时器1
从定时器2
从定时器3

5.2 互补PWM输出

典型配置参数

  • 死区时间:100ns-1μs(防止电源短路)
  • 刹车功能:异常状态快速关断
  • 同步机制:确保相位精确对齐

六、工程实践要点

6.1 参数优化建议

参数类型优化策略预期效果
时钟源选择高精度晶振提升PWM频率稳定性
预分频系数匹配目标频率范围确保计数精度
死区时间根据功率器件特性设置防止桥臂直通

6.2 常见故障排查

现象诊断方向解决方案
无PWM输出时钟源未使能检查RCC配置
频率偏差大ARR/PSC计算错误重新校准公式
占空比抖动中断冲突调整NVIC优先级
波形畸变负载阻抗不匹配增加驱动电路

七、相关资源

[1] 洋桃电子B站课程-STM32入门100步
[2] STM32官方文档手册
[3] STM32F103固件函数库用户手册(中文)
[4] PWM驱动舵机程序
[5] 定时器PWM原理.pptx


💬 技术讨论(请在评论区留言~)

📌 下期预告:下一期将探讨定时器PWM原理,欢迎持续关注!

点击查阅🔍往期【STM32专栏】文章

版权声明:本文采用[CC BY-NC-SA 4.0]协议,转载请注明来源
实测开发版:洋桃1号开发版(基于STM32F103C8T6)
更新日志

  • v1.0 初始版本(2025-03-24)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值