您的位置 首页 汽车

STM32的PWM输出及频率和脉宽(占空比)的核算

一、stm32的pwm输出引脚是使用的IO口的复用功能。二、T2~T5这4个通用定时器均可输出4路PWM——CH1~CH4。三、我们以tim3的CH1路pwm输出为例…

一、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 << 1;

2、装备对应引脚(PA6)的复用输出功用

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

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

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

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

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

//TIM3->CCMR1 |=6 << 4;//CH1 PWM1形式

TIM3->CCMR1 |= 7 << 4;//CH1 PWM2形式
TIM3->CCMR1 |= 1 << 3;//CH1预装载使能

5、输出使能设置

TIM3->CCER |= 1 << 0;//输入/捕获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 << 1;//使能TIM3时钟

//2、装备对应引脚(PA6)的复用输出功用

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

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

TIM3->ARR = arr;//设定计数器主动重装值(决议PWM的频率)
TIM3->PSC = psc;//预分频器 0为不分频
//4、设置PWM的形式
TIM3->CCMR1 |= 7 << 4;//CH1 PWM2形式
TIM3->CCMR1 |= 1 << 3;//CH1预装载使能
//5、输出使能设置

TIM3->CCER |= 1 << 0;//输入/捕获1输出使能

//6、主动重装载预装载答应位(ARPE) 及 守时器使能

TIM3->CR1 = 0X0080;//ARPE使能
TIM3->CR1 |= 0X01;//使能守时器3
}

void PWM_Init_TIM3_CH2(u16 arr, u16 psc)
{
RCC->APB1ENR |= 1 << 1;//使能TIM3时钟 GPIOA->CRL &= 0X0FFFFFFF;//PA7清0
GPIOA->CRL |= 0XB0000000;//复用功用输出(推挽50MHz输出)
GPIOA->ODR |= 1 << 7;//PA7上拉

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

TIM3->CCMR1 |= 7 << 12;//CH2 PWM2形式
TIM3->CCMR1 |= 1 << 11;//CH2预装载使能

TIM3->CCER |= 1 << 4;//输入/捕获2输出使能
TIM3->CR1 = 0X0080;//ARPE使能
TIM3->CR1 |= 0X01;//使能守时器3
}

频率:

//Fpwm = 72M / ((arr+1)*(psc+1))(单位:Hz)
占空比:

//duty circle = TIM3->CCR1 / arr(单位:%)

注:本文办法的一个守时器4个通道的pwm输出的频率是相同的,但占空比能够不同!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/265743.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部