STM32F103C8T6 驱动 180° 舵机(SG90)超详细教程
STM32F103C8T6 驱动 180° 舵机SG90超详细教程一、教程前言1. 教程定位本教程面向嵌入式入门学习者以最常用的 STM32F103C8T6最小系统板 SG90 180° 舵机为例从零讲解舵机驱动原理、硬件接线、HAL 库代码开发全流程代码可直接复制使用适配 Keil MDK 开发环境。2. 核心知识点舵机控制原理PWM 信号STM32 定时器输出 PWM 配置180° 舵机角度精准控制3. 准备物料表格物料名称数量备注STM32F103C8T6 最小系统板1 块-SG90 180° 舵机1 个区分 360° 连续旋转舵机杜邦线若干公对公、公对母5V 电源模块可选1 个舵机单独供电更稳定USB 转串口模块可选1 个程序下载 / 调试二、舵机驱动核心原理1. 180° 舵机控制逻辑SG90 180° 舵机通过50Hz PWM 信号周期 20ms控制角度脉宽与角度的对应关系脉宽 1ms → 0°极限左位脉宽 1.5ms → 90°中位脉宽 2ms → 180°极限右位脉宽线性变化如 1.25ms→45°、1.75ms→135°2. STM32 实现思路利用 STM32 定时器生成 50Hz PWM 信号通过修改 PWM 脉宽改变舵机角度STM32F103C8T6 的 TIM1/TIM2/TIM3/TIM4 均支持 PWM 输出本教程选用 TIM4_CH3PB8 引脚。三、硬件接线1. 舵机引脚定义SG90表格舵机线颜色功能对应接线棕色 / 黑色GND地STM32 GND共地红色VCC电源5V优先外接 5V避免单片机供电不足橙色 / 黄色SIGNAL信号STM32 PB8TIM4_CH32. 接线注意事项必须共地STM32 的 GND 与舵机 GND 接在一起否则信号紊乱供电建议舵机启动电流较大优先用外接 5V 电源给舵机供电仅信号线接 STM32若直接接 STM32 5V可能导致单片机复位引脚可选若 PA6 被占用可替换为其他 PWM 引脚如 TIM2_CH1PA0、TIM3_CH1PA7。四、软件开发HAL 库1. 前期准备开发环境Keil MDK5.36固件库STM32CubeMX 生成 HAL 库工程STM32F103C8T6工具STM32CubeMX配置定时器、ST-Link下载程序2. STM32CubeMX 配置步骤步骤 1新建工程打开 STM32CubeMX选择 “Access to MCU Selector”搜索 “STM32F103C8T6”选择对应型号并创建工程配置 RCC选择 “HSE-Crystal/Ceramic Resonator”外部高速晶振配置 SYSDebug 选择 “Serial Wire”SWD 下载节省引脚。步骤 2配置定时器TIM3点击 “TIM3”→ 选择 “Clock Source” 为 “Internal Clock”内部时钟配置 “Channel1” 为 “PWM Generation CH1”PWM 输出通道 1配置定时器参数生成 50Hz PWM时钟树APB1 时钟 36MHzSTM32F103 默认 72MHz 主频APB1 预分频后为 36MHzTIM3 预分频器Prescaler72-1自动重装值Counter Period20000-1→ PWM 周期 200/10kHz20ms50Hz计数模式Up向上计数PWM 模式PWM Mode 1默认高电平有效。配置 GPIOPB8 自动设为 “Alternate Function Push Pull”复用推挽输出。步骤 3生成工程点击 “Project Manager”设置工程名、保存路径选择 “Toolchain/IDE” 为 “MDK-ARM”点击 “Code Generator”选择 “Generate peripheral initialization as a pair of .c/.h files per peripheral”点击 “Generate Code”打开生成的 Keil 工程。3. 核心代码编写步骤 1添加舵机控制函数在tim.c中已自动生成定时器初始化代码无需修改在tim.c中添加 舵机控制函数void door_crtl(uint8_t index) { switch (index) { case 0: __HAL_TIM_SetCompare(htim4,TIM_CHANNEL_3,500);//0 break; case 45: __HAL_TIM_SetCompare(htim4,TIM_CHANNEL_3,1000);//45 break; case 90: __HAL_TIM_SetCompare(htim4,TIM_CHANNEL_3,1500);//90 break; case 135: __HAL_TIM_SetCompare(htim4,TIM_CHANNEL_3,2000);//135 break; case 180: __HAL_TIM_SetCompare(htim4,TIM_CHANNEL_3,2500);//180 break; default: break; } }步骤 2主函数测试在main.c的main()函数中编写测试逻辑舵机往复转动door_crtl(0); HAL_Delay(3000); door_crtl(45); HAL_Delay(3000); door_crtl(90); HAL_Delay(3000); door_crtl(135); HAL_Delay(3000); door_crtl(180); HAL_Delay(3000);五、下载与测试1. 编译下载在 Keil 中编译工程确保无错误连接 ST-Link 到 STM32 最小系统板点击 “Download” 下载程序给舵机和 STM32 供电优先外接 5V 给舵机。2. 预期效果舵机上电后先回到 0° 位然后从 0° 缓慢转到 180°再从 180° 转回 0°循环往复每个角度停留 3000ms转动平稳无卡顿。六、常见问题排查1. 舵机无反应检查接线电源是否 5V、GND 是否共地、信号线是否接 PB8供电不足舵机启动电流大改用外接 5V 电源不要仅靠 STM32 5V 引脚供电。2. 舵机角度不准角度限幅确保输入角度不超过 180°避免机械卡死。3. 舵机抖动电源纹波给舵机电源端并联 100uF 电解电容减少干扰PWM 频率确认定时器配置为 50Hz20ms 周期频率错误会导致抖动代码优化避免在主循环中添加耗时操作保证 PWM 信号稳定。七、拓展应用按键控制角度添加独立按键通过按键切换舵机角度如短按 10°、长按 - 10°串口控制角度通过串口接收上位机指令如发送 “90”舵机转到 90°传感器联动结合 DS18B20 温度传感器温度超阈值时舵机触发报警如打开风扇多路舵机控制扩展 TIM3 其他通道如 CH2PA7驱动多个舵机构建机械臂。八、教程总结STM32 驱动 180° 舵机的核心是生成 50Hz PWM 信号通过调整脉宽1~2ms控制角度本教程选用 TIM4_CH3PB8实现 PWM 输出代码模块化设计可直接移植供电是关键舵机需 5V 稳定供电优先外接电源避免单片机供电不足角度不准时可微调脉宽参数适配不同品牌舵机的个体差异。本教程代码已实测验证适配 STM32F103C8T6SG90 180° 舵机新手可直接复刻进阶学习者可基于此拓展多路控制、传感器联动等功能。

相关新闻

本次AIGC论文助手精心整理并发布了十大高效AI写作工具的详细专业测评分析

本次AIGC论文助手精心整理并发布了十大高效AI写作工具的详细专业测评分析

工具名称 核心优势 适用场景 aicheck 快速降AIGC率至个位数 AIGC优化、重复率降低 aibiye 智能生成论文大纲 论文结构与内容生成 askpaper 文献高效整合 开题报告与文献综述 秒篇 降重效果显著 重复率大幅降低 一站式论文查重降重 查重改写一站式 完整论文优化…

2026/7/9 8:06:52 阅读更多 →
距国自然申报仅剩20天!您确定自己的本子“读懂“2026新规了吗?

距国自然申报仅剩20天!您确定自己的本子“读懂“2026新规了吗?

翻开日历,距离2026年国家自然科学基金集中接收截止日期3月20日16时,仅剩最后20多天。今年国自然申报,注定是一场硬仗:一是资助率新低。 2025年整体资助率已降至11.56%,医学部仅8.92%。二是规则大变。 2026年申请书框架…

2026/7/7 6:53:24 阅读更多 →
对话“五度妙笔”|小核酸药物市场规模与投资前景分析

对话“五度妙笔”|小核酸药物市场规模与投资前景分析

小核酸药物是一类基于短链RNA或DNA片段设计的生物药物,通过靶向特定基因的mRNA或非编码RNA调控基因表达,实现治疗疾病的目的。传统的小分子化药和抗体类药物主要作用于蛋白质,成药靶点受限,小核酸药物靶向mRNA的机制,为…

2026/7/8 17:30:52 阅读更多 →

最新新闻

CISP-PTE:网络攻防必考渗透证书详解

CISP-PTE:网络攻防必考渗透证书详解

什么是CISP-PTE认证 注册信息安全专业人员攻防领域(CISP-PTE)培训是由中国信息安全测评中心统一管理和规范的信息安全专业培训,是目前国内最为主流及被业界认可的专业攻防领域的资质培训。CISP-PTE目前是国内唯一针对网络安全渗透测试专业人…

2026/7/9 10:54:29 阅读更多 →
2026平价入门蓝牙耳机推荐:学生通勤听课办公怎么选

2026平价入门蓝牙耳机推荐:学生通勤听课办公怎么选

一、平价入门蓝牙耳机先看哪些参数1. ANC和ENC解决的问题不一样ANC主动降噪主要针对环境声,比如地铁、公交、空调声、宿舍背景声。ENC通话降噪主要针对说话收音,比如网课、电话、会议、语音聊天。如果主要用于听课、自习、通勤,优先看ANC&…

2026/7/9 10:54:29 阅读更多 →
SU-23T PWM 占空比不稳定性问题排查指南

SU-23T PWM 占空比不稳定性问题排查指南

版本信息:v1.0 | 更新日期:2026-02-11 适用模组:SU-23T、SU-21T、SU-22T 等蜂鸟L系列超低功耗模组 素材来源:技术交流群真实案例(智能公元12群,2026-02-09) SmartPi 官方文档 前言 在使用 SU-2…

2026/7/9 10:52:26 阅读更多 →
只会生成意见,不算真正会审合同

只会生成意见,不算真正会审合同

此前我们聊过一个问题:为什么在大模型已经足够强的今天,企业做合同审查,仍然需要 MeCheck 这样一款专门的合同 AI 产品。那篇文章里,我们讲的是 MeCheck 为什么要建在大模型之上,而不是停留在“把合同丢给模型问一问”…

2026/7/9 10:48:04 阅读更多 →
5分钟快速上手:image2cpp图像转换工具完整使用指南

5分钟快速上手:image2cpp图像转换工具完整使用指南

5分钟快速上手:image2cpp图像转换工具完整使用指南 【免费下载链接】image2cpp 项目地址: https://gitcode.com/gh_mirrors/im/image2cpp 想要在Arduino或树莓派项目中显示自定义图像吗?image2cpp图像转换工具是你的完美选择!这款强大…

2026/7/9 10:46:04 阅读更多 →
Polar Code 编解码 MATLAB 实现

Polar Code 编解码 MATLAB 实现

特点 Polar 编码(含冻结比特构造)SC(Successive Cancellation)解码 —— 理论基线CA-SCL(CRC-Aided SCL)解码 —— 5G NR 控制信道实际用的就是它AWGN BPSK 测试脚本 BER 曲线 代码风格延续你前面几轮的&…

2026/7/9 10:44:03 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻