STM32定时器输出PWM


我们设置ARR值,就是设置CNT的上限,设置CCRX的值就是设置了一个临界点,CNT是一直随时间变化而变化的,当CNT>CCRX的时候输出 高/低电平 当CNT<CCRX的时候输出相反的电平,当CNT达到上限时,下一刻就变成0了。又开始CNT小于或者大于两种状态。
CNT从0到ARR是一个周期
CNT<CCRX输出高/低
CNT>CCRX输出低/高
只要TIM不关闭,CNT就一直循环上面两个状态。这样就形成了PWM
PWM周期:ARR决定
PWM占空比:CCRX决定

STM32定时器TIM3使用PWM模式

代码中相关寄存器和一些时钟的配置:
1:打开TIM3时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

2:因为想使用PB5作为输出脚所以打开复用时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

3:设置TIM3 CH2的部分映射

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
AFIO->MAPR&=0XFFFFF3FF;
AFIO->MAPR|=1<<11;PA7-->>PB5

4:使能GPIOB,设置GPIO_PB5为复用推挽输出设置GPIO的速率为最大50MHZ

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef GPIO_INIT;
GPIO_INIT.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_INIT.GPIO_Pin=GPIO_Pin_5;
GPIO_INIT.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_INIT);

5:设定计数器自动重装值,预分频器值,设置TIM CH2为PWM模式,预装载使能,输出使能,计数使能

TIM3->ARR=25; //设定计数器自动重装值
TIM3->PSC=72; //预分频器不分频
TIM3->CCMR1|=7<<12; //CH2 PWM2 模式
TIM3->CCMR1|=1<<11; //CH2 预装载使能
TIM3->CCER|=1<<4; //OC2 输出使能
TIM3->CR1=0x0080; //ARPE 使能
TIM3->CR1|=0x01; //使能定时器 3

6:我们可以通过改变CCR2的值设置PWM占空比

TIM3->CCR2=8;

7:可以通过改变ARR值改变PWM周期

TIM3->ARR=25; //设定计数器自动重装值

总结:这个可以把之前的用延迟做的PWM改成用通用定时器做的。因为定时器做的PWM不占用主循环,硬件自动输出。我们只要改变寄存器的值就可以控制PWM。软件延迟做的话,需要占用主循环,不能做别的事情。交流学习的可以+2197358160一起学习。

STM32定时器输出PWM相关推荐

  1. stm32 定时器输出PWM原理及工作原理+控制舵机

    1.PWM的工作原理 2.PWM的内部运作机制 3.PWM的模式 模块一  边沿对齐模式 模块二 中央对齐模式 4.自动加载的预加载寄存器 5.定时器输出PWM结构体讲解 6.定时器输出PWM库函数讲 ...

  2. STM32 定时器输出pwm的频率计算方法 PWM 频率检测方法 直流电机的位置控制

    调节频率: 定时器重载值 = 定时器分频后的频率 / 最终输出的频率 调节占空比: /* 功能:改变指定定时器指定通道的pwm的频率和占空比 参数:htim:定时器句柄chanel: 通道duty_c ...

  3. STM32通用定时器输出PWM控制舵机 —— 重装载值、比较值、当前值

    参考:stm32 定时器输出PWM原理及工作原理+控制舵机 作者:点灯小哥 发布时间: 2021-03-09 23:17:52 网址:https://blog.csdn.net/weixin_4601 ...

  4. stm32定时器输出pwmIO口模拟pwm——呼吸灯

    文章目录 前言 一.pwm(脉冲宽度调制) 1.基本原理 2.PWM的优点 3.PWM波的控制方法 二.定时器的相关介绍 1.stm32定时器 2.通用定时器计数模式 3.定时器的基本工作原理 三.定 ...

  5. STM32学习笔记:通用定时器输出PWM

    脉冲宽度调制,简称PWM(Pulse Width Modulation)是利用微处理器的数字输出 对模拟电路进行控制的一种非常有效的控制技术,常用于控制Led灯的亮度.电机转速等. STM32 的定时 ...

  6. STM32通用定时器输出PWM

    1 .TIMx简介 通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成. 它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM). 使用定时器预分 ...

  7. 嵌入式学习——使用定时器输出PWM波形,实现 LED呼吸灯的效果

    嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 目录 嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 1. 任务要求 2 PWM波介绍, 2.1 什么是PWM(Pu ...

  8. STM32f103C8定时器输出PWM波信号

    利用stm32高级定时器输出PWM,模拟呼吸灯的效果带刹车功能.由于没有示波器查看输出的pwm波形图,所以本次实验使用普通直流电机模拟的. 本文章为学习笔记,其中有些地方解释的不是那么的好,即本笔记可 ...

  9. STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期

    STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期 目录 STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期 1.介绍 2.STM32C ...

最新文章

  1. python mysql库对比_mysqlclient和PyMySQL对比
  2. 【LaTeX】E喵的LaTeX新手入门教程(6)中文
  3. spark | scala | 线性代数库Breeze学习
  4. CF1598E-Staircases【计数】
  5. .net MVC路由
  6. 贵!iPhone 11系列维修费用出炉 最高的可以入手一部华为P30 Pro了…
  7. Jsoup获取动态js生成的内容
  8. 【Clickhouse】ClickHouse REST API(HTTP接口)及Engine引擎的使用
  9. 原生App vs 移动Web App : 你如何选择
  10. 豆瓣250信息爬取及保存到excel中
  11. agent常见处理问题的处理
  12. 扶桑之伤 作者:长铗
  13. Android使用字体代替图标
  14. HCIP(华为高级网络安全工程师)(第五天)(OSPF协议1)
  15. FastDFS集群环境搭建(五)FastDFS监控器fdfs_monitor
  16. The type initializer for ‘Gdip‘ threw an exception. (centos)
  17. 地下城与勇士(DNF)洛兰副本(洛兰、洛兰深处、比尔马克帝国试验场、悲鸣洞穴)(童年的回忆)
  18. 关于获取VMware软件各个版本的永久激活密钥(附虚拟机挂机再恢复后黑屏的解决方法)...
  19. PHP常驻进程异常,PHP 多进程 解决难题(常驻进程问题)
  20. d转换简单结构数组为C值数组

热门文章

  1. 人体姿势估计论文:Simple and Lightweight Human Pose Estimation及其PyTorch实现
  2. PDF压缩(全图片PDF压缩)
  3. Flutter之路由跳转(上)
  4. Mp3标签IDV1以及ID3V2的解析类
  5. 【论文笔记】SSCDNet:弱监督语义场景变化检测模型
  6. 小程序、公众号开发报code been used(40163)或invalid code(40029)错误,解决方案--之--搞清楚微信的登录机制,保存登录状态!!!
  7. [转贴] 网络硬盘“G宝盘”使用体验
  8. C#\WPF高仿QQ音乐V12.8界面篇《2》
  9. vue列表显示时间、电子字体引入
  10. 天气通android2.1,今日天气通APP