0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32的pwm输出及频率计算方法

MCU开发加油站 来源:互联网 作者:佚名 2017-11-29 15:51 次阅读

一、stm32的pwm输出引脚是使用的IO口的复用功能。

二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。

三、我们以tim3的CH1路pwm输出为例来进行图文讲解(其它类似),并在最后给出tim3的ch1和ch2两路pwm输出的c代码(已在STM32F103RBT6上测试成功,大家放心使用!)。

四、给出了PWM频率和占空比的计算公式。

步骤如下:

1、使能TIM3时钟

RCC->APB1ENR |= 1 2、配置对应引脚(PA6)的复用输出功能

GPIOA->CRL &= 0XF0FFFFFF;//PA6清0GPIOA->CRL |= 0X0B000000;//复用功能输出(推挽50MHz输出)GPIOA->ODR |= 1

3、设定计数器自动重装值及是否分频

TIM3->ARR = arr;//设定计数器自动重装值(决定PWM的频率)TIM3->PSC = psc;//预分频器,0为不分频

4、设置PWM的模式(有1和2两种模式,区别在于输出电平极性相反),根据需求选一种即可

注:TIMX_CCMR1决定CH1~CH2路,TIMX_CCMR2决定CH3~CH4路。

//TIM3->CCMR1 |= 6 TIM3->CCMR1 |= 7 TIM3->CCMR1 |= 1

5、输出使能设置

TIM3->CCER |= 1

6、自动重装载预装载允许位(ARPE) 及定时器使能

TIM3->CR1 = 0X0080;//ARPE使能(此句不配置也行)TIM3->CR1 |= 0X01;//使能定时器3

下面给出TIM3_CH1及TIM3_CH2的PWM输出代码:void PWM_Init_TIM3_CH1(u16 arr, u16 psc){//1、使能TIM3时钟RCC->APB1ENR |= 1 //2、配置对应引脚(PA6)的复用输出功能GPIOA->CRL &= 0XF0FFFFFF;//PA6清0GPIOA->CRL |= 0X0B000000;//复用功能输出(推挽50MHz输出)GPIOA->ODR |= 1 //3、设定计数器自动重装值及是否分频TIM3->ARR = arr;//设定计数器自动重装值(决定PWM的频率)TIM3->PSC = psc;//预分频器 0为不分频//4、设置PWM的模式TIM3->CCMR1 |= 7 TIM3->CCMR1 |= 1 //5、输出使能设置TIM3->CCER |= 1 //6、自动重装载预装载允许位(ARPE) 及 定时器 使能TIM3->CR1 = 0X0080;//ARPE使能TIM3->CR1 |= 0X01;//使能定时器3}void PWM_Init_TIM3_CH2(u16 arr, u16 psc){RCC->APB1ENR |= 1

GPIOA->CRL &= 0X0FFFFFFF;//PA7清0GPIOA->CRL |= 0XB0000000;//复用功能输出(推挽50MHz输出)GPIOA->ODR |= 1 TIM3->ARR = arr;//设定计数器自动重装值(决定PWM的频率)TIM3->PSC = psc;//预分频器 不分频TIM3->CCMR1 |= 7 TIM3->CCMR1 |= 1 TIM3->CCER |= 1 TIM3->CR1 = 0X0080;//ARPE使能TIM3->CR1 |= 0X01;//使能定时器3}频率://Fpwm = 72M / ((arr+1)*(psc+1))(单位:Hz)占空比://duty circle = TIM3->CCR1 / arr(单位:%)注:本文方法的一个定时器4个通道的pwm输出的频率是相同的,但占空比可以不同!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4897

    浏览量

    209889
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348720

原文标题:详解STM32的PWM输出及频率和脉宽(占空比)的计算——寄存器配置六步曲!

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32伺服电机转速计算方法相关资料分享

    定时器使用的时钟是APB1还是APB2,并查询相应的分频系数,确定定时器的时钟频率计算方法:TCLK=HCLK/APBPres...
    发表于 06-28 09:09

    如何去计算STM32 PWM的任意频率

    STM32 PWM任意频率计算STM32F103为例总频是72M,定时器频率F与分频PSC、重装值ARR之间的关系为:F=72M(ARR+
    发表于 08-05 07:00

    STM32F4系列定时器输出PWM频率计算步骤

    1、STM32F4系列定时器输出PWM频率计算第一步,了解定时器的时钟多少: 我们知道AHP总线是168Mhz的频率,而APB1和APB2都
    发表于 09-16 06:39

    怎样去计算STM32 PWM输出频率

    STM32F103定时器频率与分频、重装值之间有何关系?怎样去计算STM32 PWM输出
    发表于 10-21 09:52

    STM32定时器时钟的计算方法是什么

    STM32三种定时器有何区别?STM32定时器时钟的计算方法是什么?
    发表于 11-23 07:04

    ADC采样时间、采样周期、采样频率计算方法

    STM32——ADC采样时间、采样周期、采样频率计算方法ADC转换:单片机将采集到的模拟量信号,通过ADC控制器转换成数字量。采样周期:单片机读取数字量必须等转换完成后,完成一个通道ADC读取(采样
    发表于 12-10 06:16

    lcrc谐振频率计算

    lcrc谐振频率计算器:包含有RC谐振频率计算工具软件和LC谐振频率计算软件。
    发表于 10-30 15:00 29次下载
    lcrc谐振<b class='flag-5'>频率计算</b>器

    频率计算

    频率计算器:含有多种频率计算工具,有LC谐振频率计算软件,RC谐振频率计算工具,并含有多种软件。你喜欢哪种就挑哪种。
    发表于 10-30 15:09 30次下载
    <b class='flag-5'>频率计算</b>器

    频率计算法分析及误差分析

    本内容提供了 频率计算 法分析及误差分析,详细介绍了各种测量的方法
    发表于 07-13 18:01 0次下载
    <b class='flag-5'>频率计算</b>法分析及误差分析

    LC震荡频率计算

    LC震荡频率计算
    发表于 10-29 17:03 33次下载

    LC谐振频率计算公式 LC串联和并联谐振频率计算

    本文介绍LC谐振频率计算公式,LC串联谐振频率、LC并联谐振频率计算方法
    发表于 10-10 15:58 34.4w次阅读
    LC谐振<b class='flag-5'>频率计算</b>公式 LC串联和并联谐振<b class='flag-5'>频率计算</b>

    cpu时钟频率计算公式_CPU频率计算方法详解

    CPU频率,就是CPU的时钟频率,简单说是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位是Hz,它决定计算机的运行速度。本文主要介绍cpu时钟
    发表于 04-28 10:32 3.2w次阅读

    STM32 PWM任意频率计算

    STM32 PWM任意频率计算STM32F103为例总频是72M,定时器频率F与分频PSC、重装值ARR之间的关系为:F=72M(ARR+
    发表于 12-02 18:06 33次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>PWM</b>任意<b class='flag-5'>频率计算</b>

    频率计算PWM信号的占空比

    电子发烧友网站提供《用频率计算PWM信号的占空比.zip》资料免费下载
    发表于 12-26 10:30 4次下载
    用<b class='flag-5'>频率计算</b><b class='flag-5'>PWM</b>信号的占空比

    EMC计算方法和EMC仿真(1) ——计算方法简介

    EMC计算方法和EMC仿真(1) ——计算方法简介
    的头像 发表于 12-05 14:56 500次阅读
    EMC<b class='flag-5'>计算方法</b>和EMC仿真(1) ——<b class='flag-5'>计算方法</b>简介