当前位置: 首页 > news >正文

基于STM32F103实现两路PWM输出

一、硬件连接方案

1. 引脚分配(以TIM3为例)
通道默认引脚重映射引脚适用场景
CH1PA6PB4电机控制/LED调光
CH2PA7PB5伺服电机/呼吸灯
2. 电路设计要点
  • 电机驱动:需外接H桥电路(如TB6612)保护GPIO

  • LED限流:串联220Ω电阻防止烧毁

  • 滤波电路:在电源端添加0.1μF陶瓷电容


二、软件实现代码

1. 定时器初始化(TIM3双通道PWM)
#include"stm32f10x.h"voidTIM3_PWM_Init(u16 arr,u16 psc){GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;// 使能时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);// 引脚重映射配置GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);// PA6→PB4, PA7→PB5// GPIO初始化GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;// 复用推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);// 定时器基础配置TIM_TimeBaseStructure.TIM_Period=arr;// 自动重装载值TIM_TimeBaseStructure.TIM_Prescaler=psc;// 预分频系数TIM_TimeBaseStructure.TIM_ClockDivision=0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);// PWM模式配置TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;// PWM模式1TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;// 通道1配置TIM_OCInitStructure.TIM_Pulse=0;// 初始占空比0%TIM_OC1Init(TIM3,&TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);// 通道2配置TIM_OCInitStructure.TIM_Pulse=0;TIM_OC2Init(TIM3,&TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);// 使能定时器TIM_Cmd(TIM3,ENABLE);}
2. 占空比动态调整
// 设置通道1占空比(0-100%)voidSet_PWM1_DutyCycle(u8 percent){u16 compare_val=(arr+1)*percent/100;TIM_SetCompare1(TIM3,compare_val);}// 设置通道2占空比(0-100%)voidSet_PWM2_DutyCycle(u8 percent){u16 compare_val=(arr+1)*percent/100;TIM_SetCompare2(TIM3,compare_val);}
3. 主函数示例
intmain(void){// 初始化PWM(周期20ms,频率50Hz)TIM3_PWM_Init(19999,71);// 72MHz/(72)=1MHz → 1MHz/(19999+1)=50Hzwhile(1){// 通道1从0%到100%渐变for(u8 i=0;i<=100;i++){Set_PWM1_DutyCycle(i);Delay_ms(10);}// 通道2从100%到0%渐变for(u8 i=100;i>=0;i--){Set_PWM2_DutyCycle(i);Delay_ms(10);}}}

三、关键参数计算

1. PWM频率公式
频率=72MHz/(预分频系数+1)/(自动重装载值+1)
  • 示例:psc=71, arr=19999 → 72/(72)/(20000)=50Hz
2. 占空比计算
占空比(%)=(CCR值/(ARR+1))×100

四、调试技巧

1. 示波器观察要点
  • 上升沿对齐:确保两路PWM上升沿同步

  • 占空比精度:检查实际值与设定值偏差(应<1%)

  • 死区时间:电机控制需添加死区(建议0.1-0.5μs)

2. 常见问题解决
现象原因解决方案
无输出GPIO未正确映射检查AFIO时钟和重映射配置
占空比失真中断干扰关闭相关中断或提高优先级
频率漂移系统时钟异常验证PLL配置和外部晶振

五、扩展功能实现

1. 输入捕获同步
// 配置TIM3_CH1为输入捕获(用于编码器)TIM_ICInitTypeDef TIM_ICInitStructure;TIM_ICInitStructure.TIM_Channel=TIM_Channel_1;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;TIM_ICInitStructure.TIM_ICFilter=10;TIM_ICInit(TIM3,&TIM_ICInitStructure);
2. 硬件PWM刹车
// 紧急停止时强制输出低电平voidPWM_Brake(){GPIO_ResetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5);}

参考代码 STM32F103控制的两路PWM输出www.youwenfan.com/contentcnr/103639.html

六、完整工程配置

  1. CubeMX配置流程

    • 选择STM32F103C8T6

    • 启用TIM3定时器

    • 配置通道1和2为PWM模式

    • 设置时钟树(HSE=8MHz, PLL=9倍频)

  2. Keil工程结构

    Project/ ├── Core/ │ ├── Inc/(头文件)│ └── Src/(源文件)├── Drivers/ │ ├── CMSIS/ │ └── STM32F1xx_HAL_Driver/ └── Middlewares/ └── USB_Device/
http://www.jsqmd.com/news/368525/

相关文章:

  • 新手福音!全网最全OpenClaw中文教程,完全免费开源!
  • 深度解析:ragflow里的agent怎么用?2026年Agent原生时代下,实在Agent如何重塑企业生产力?
  • 从 UI 自动化到 Agentic RPA:深度解析实在智能 TARS 大模型驱动的自动化架构演进
  • OpenClaw新手必看!从零到精通只需这一份教程
  • 从“直接插入排序”的底层逻辑到Agent智能体:2026年企业如何通过实在智能实现数字化质变?
  • 2026年开年:武昌区实力调味品配送商线上价格评测与选型指南 - 2026年企业推荐榜
  • 2026年农村厕所化粪池厂家权威推荐榜:成品玻璃钢化粪池/污水处理一体化设备/混凝土化粪池/玻璃钢环保型化粪池/选择指南 - 优质品牌商家
  • RoPE笔记
  • 辛香干货采购指南:2026年五家实力供应商推荐 - 2026年企业推荐榜
  • 2026西南名包回收优质商家推荐榜:香奈儿包包回收电话、高价名表回收电话、lv包包回收电话、二手名表回收电话选择指南 - 优质品牌商家
  • 2026绵阳二手房中介优质推荐指南 适配多元置业需求 - 优质品牌商家
  • 分布式系统:分布式事务
  • 2026年口碑好的2516裁剪机/圆刀裁剪机畅销生产厂家采购指南怎么选 - 品牌宣传支持者
  • CANN ATVOSS:赋能 Ascend AI 处理器视频开源智能生态
  • 2026年湖南休闲零食批发采购配送优选指南 - 2026年企业推荐榜
  • atvoss:异构计算AI算子自动调优与调度引擎,释放硬件极致性能
  • 社区项目ROSA Soft: 一种端到端的 ROSA 算子实现
  • 2026成都名包回收靠谱商家推荐指南 - 优质品牌商家
  • 2026年宴会厅酒店深度评测:如何筛选靠谱的服务商? - 2026年企业推荐榜
  • 成都优质书画定制机构推荐榜单 - 优质品牌商家
  • 2026年热门的2516裁剪机/振动刀裁剪机品牌厂家推荐哪家强 - 品牌宣传支持者
  • 2026年燃气热水器烟道公司权威推荐:住宅烟道/公共烟道/厨房烟道/密封防火胶/小区烟道/居民楼烟道/屋面烟道/选择指南 - 优质品牌商家
  • 论文回顾 — 用于软件开发的交互式代理
  • 2026年知名的玻璃石英砂实力工厂参考怎么选 - 品牌宣传支持者
  • 2026年佛山机柜柔性折弯中心选型与品牌深度解析 - 2026年企业推荐榜
  • 阿里达摩院发布具身智能大脑基础模型 RynnBrain:首次赋予机器人时空记忆与物理推理能力
  • 2026年靠谱的钙基膨润土销售厂家采购建议选哪家 - 品牌宣传支持者
  • 2026年初临泉县高品质仿石漆施工方综合评选指南 - 2026年企业推荐榜
  • 2026年浙江企业苹果云手机服务商综合评估与精选推荐 - 2026年企业推荐榜
  • 临泉县外墙仿石漆施工公司精选与评测 - 2026年企业推荐榜