STM32 CubeIDE 通过PWM占空比控制舵机角度

PWM(Pulse Width Modulation)脉冲宽度调制,是一种通过改变脉冲信号的高电平持续时间(占空比)来模拟输出不同电压的技术。

占空比:在一个周期内,高电平时间与总周期时间的比值,通常用百分比表示。

新建工程,在SYS将Debug模式设置为Serial Wire,在RCC中设置高速时钟源为晶振,时钟时钟里时钟主频为72HMz。

设置旋转编码器,在TIM1里面打开TIM1的旋转编码器模式。

硬件连接使用的是PB8口对应TIM4的通道3

在TIM4勾选时钟源为内部时钟源将通道3设置为PWM生成模式

将PWM信号的频率控制在50MHz(72MHz / (预分频器)720分频 / 自动重装载(2000)= 50Hz)

启动TIM1编码器模式来捕获编码器脉冲HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);

启动TIM4通道3的PWM输出模式HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);

编码器计数读取与保护:从TIM1读取当前计数值,并做了上限和下限保护,防止溢出或异常值。

PWM占空比计算:将编码器的计数值 count 经过一个公式转换为PWM比较值 duty ,从而控制输出波形的占空比。

PWM输出更新:通过 __HAL_TIM_SET_COMPARE 函数更新TIM4通道3的比较值,改变PWM输出。

程序最终实现效果:通过旋转编码器控制舵机旋转

相关推荐
茯苓gao35 分钟前
嵌入式开发笔记:CANopen相关移位运算与通信协议术语详解
网络·嵌入式硬件·学习·信息与通信
梁朝辉3 小时前
STM32H750VBT6中ADCINP与INN什么区别
stm32·单片机·嵌入式硬件
省四收割者4 小时前
一文详解信号完整性(1)
python·嵌入式硬件·数学建模·信息与通信·信号处理·智能硬件
崇山峻岭之间5 小时前
单片机无感FOC驱动之ADC
单片机·嵌入式硬件
Ligocious6 小时前
1.点亮一颗小小的LED
单片机·嵌入式硬件
KaifuZeng10 小时前
通信与接口协议面试八、CAN通信
单片机·嵌入式硬件·面试·通信与接口协议
智源单片机设计11 小时前
基于单片机的直流电机双闭环调速系统设计
单片机·嵌入式硬件
kebidaixu11 小时前
两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片详解
stm32
kebidaixu12 小时前
两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片调试实录:四个关键问题与解决方案
stm32