如何运用STM32 的一个通用定时器产生频率可调的PWM
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何运用STM32 的一个通用定时器产生频率可调的PWM相关的知识,希望对你有一定的参考价值。
参考技术A void TIM2_PWM_OUT_Conf(void)RCC->APB1ENR |=1<<0; //TIM2 Clock
RCC->APB2ENR |=1<<2; //GPA Clock
RCC->APB2ENR |=1<<0; //AFIO Clock
RCC->APB2ENR |=1<<3; //GPB Clock
RCC->APB1ENR |=7<<0; //TIM2 TIM3 TIM4 Clock
GPIOA->CRL &=0xFFFF0000; //
GPIOA->CRL |=0x0000BBBB; //AF-Out
TIM2->CR1 |=1<<4; //Count Down
TIM2->CCMR1 |=6<<4; //OC1M:PWM1
TIM2->CCMR1 |=6<<12; //OC2M:PWM1
TIM2->CCMR2 |=6<<4; //OC3M:PWM1
TIM2->CCMR2 |=6<<12; //OC4M:PWM1
// TIM2->CCMR1 |=1<<2;
// TIM2->CCMR2 |=1<<10;
// TIM2->CCMR1 |=1<<2;
// TIM2->CCMR2 |=1<<10;
TIM2->CCER |=1<<0; //CC1E ENABLE
TIM2->CCER |=1<<4; //CC2E ENABLE
TIM2->CCER |=1<<8; //CC3E ENABLE
TIM2->CCER |=1<<12; //CC4E ENABLE
TIM2->PSC =719; //720-1 PSC
TIM2->ARR =PWM_PERIOD; //20ms
TIM2->CR1 |=1<<0; //ENABLE
//CCR 寄存器修改占空比本回答被提问者采纳 参考技术B stm32f103系列的芯片每个定时器(基本定时器tim6和tim7除外)都有4个通道,每个通道都能产生4路pwm,1路和4路区别不大,你把1路的初始化部分的代码在通道代码的基础上复制另外几个通道的初始化函数就可以了,其余的没有任何区别。
以上是关于如何运用STM32 的一个通用定时器产生频率可调的PWM的主要内容,如果未能解决你的问题,请参考以下文章