【PWM】舵机问题解决方案
提示
此文档是【舵机控制例程】中舵机不运行问题的解决方案,如果您还没有下载【舵机控制例程】,请先前往 舵机控制🔗 下载并使用例程。
问题描述
我们发现2025年12月16日~2026年3月13日期间采购的舵机中,有部分内部带有上拉电阻。这会与学习板上的保护电路冲突,从而导致驱动信号被阻断无法传到舵机。
解决方案
- 可以使用右侧
DRV8833接口连接有内部上拉的舵机,如下图所示:
如有其他需要,请在会员群联系技术支持或客服获取帮助,给您造成困扰非常抱歉

- 更换接口后,舵机驱动引脚变为:
PB8->PA1,因此需要在CubeIDE中重新分配引脚、定时器:
系统时钟配置不变,仍为72MHz(可参考舵机例程)

- 将代码中的
TIM4TIM_CHANNEL_3替换为TIM2TIM_CHANNEL_2,即可正常控制舵机
// 启动PWM输出
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
// 旋转到中点,占空比7.5%,即2000 * 7.5% = 150
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, 150);
HAL_Delay(1000);
直接下载改好的代码
为方便快速验证,您可以直接下载使用 DRV8833接口 连接舵机的例程代码
提示
您可以解压缩后直接双击 下载这个例程.bat,即可直接下载代码到学习板中

详细原因说明
-
学习板的保护电路是肖特基二极管(位号D8,原理图第三页),它用于限制电流方向仅允许
STM32->舵机,以防止将舵机插头插反时,高压5V灌入引脚而烧毁单片机。 -
然而它也限制了只能由STM32将舵机信号引脚拉高,一旦舵机内部存在上拉电 阻,信号引脚就会被彻底钳位在高电平,STM32无法拉低信号引脚,从而无法控制舵机。
-
连接到
DRV8833接口后,信号引脚不再经过肖特基二极管的保护,因此不会被钳位,可以正常控制带内部上拉电阻的舵机。 -
如您需要其他帮助和支持,请在会员群内联系技术支持或客服,给您造成困扰非常抱歉。