STM32的PWMbob手机版网页体育输出及频率和脉宽(占
一、stm32的pwm输出引脚是使用的IO口的复用功能。

2.四个通用定时器T2~T5都可以输出四个PWM通道& mdash& mdashCH1~CH4 .

本文引用地址:http://www.eepw.com.cn/article/201611/318473.htm

再次,我们以tim3的ch1 pwm输出为例进行说明(其他类似),最后给出tim3的ch1和ch2 pwm输出的C代码(已经在STM32F103RBT6上测试成功,大家bob手机版网页体育 可以放心使用!)。

第四,给出了PWM频率及其比值空的计算公式。

步骤如下:

1.启用TIM3时钟。

RCC-> APB 1 ENR | = 1 CRL & = 0x f 0 ffffff;//PA6 clear 0g pioa-> CRL | = 0x0b 000000;//复用功能输出(推挽50MHz输出)GPIOA-> ODR | = 1 ARR = ARR;//设置计数器自动复位值(确定PWM的频率)Tim 3-> PSC = PSC;//前置除法器,0不除。

4.设置PWM模式(有1和2两种模式,区别是输出电平极性相反),可以根据需要选择一种。

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

//tim3-> ccmr1 | = 6cmr1 | = 7 5,输出使能设置

Tim 3-> CCER | = 1 CR1 = 0x 0080;//ARPE使能(这句话不配置)Tim 3-> CR1 | = 0x 01;//使能定时器3

TIM3_CH1和TIM3_CH2的PWM输出代码如下:

void PWM_Init_TIM3_CH1(u16 arr,u16 psc){

//1.使能TIM3时钟

RCC-> APB 1 ENR | = 1 CRL & = 0x f 0 ffffff;//PA6 clear 0 GPIOA-> CRL | = 0x0b bob手机版网页体育000000;//复用功能输出(推挽50MHz输出)GPIOA-> ODR | = 1 ARR = ARR;//设置计数器自动复位值(确定PWM的频率)Tim 3-> PSC = PSC;//预分频器0为无分频//4和PWM设置的模式,Tim 3-> CCM R1 | = 7 Tim 3-> ccer | = 1c R1 = 0x 0080;//ARPE使能Tim 3-> CR1 | = 0x 01;//使能定时器3}

void PWM_Init_TIM3_CH2(u16 arr,u16 PSC){ RCC-> APB 1 ENR | = 1 CRL | = 0xb 0000000;//复用功能输出(推挽50MHz输出)GPIOA-> ODR | = 1 ARR = ARR;//设置计数器自动复位值(确定PWM的频率)Tim 3-> PSC = PSC;//预分频器不分频。

Tim 3-> ccmr 1 | = 7 Tim 3-> CCER | = 1 CR1 | = 0x 01;//使能定时器3}

频率:

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

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

注意:该方法中一个定时器的四路pwm输出的频率是相同的,但是空的比值可以不同!

bob手机版网页体育
在线预约
TOP