小车PWM控制速度
单片机源程序如下:
- #include "timer.h"
- #include "delay.h"
- //TIM3 PWM部分初始化
- //PWM输出初始化
- //arr:自动重装值
- //psc:时钟预分频数
- void TIM3_PWM_Init(u16 arr,u16 psc)
- {
- RCC->APB1ENR|=1<<1; //TIM3时钟使能
- RCC->APB2ENR|=1<<2; //使能PORTA时钟
- RCC->APB2ENR|=1<<3; //使能PORTB时钟
- GPIOA->CRL&=0X00FFFFFF; //PA6 CH1 PA7 CH2
- GPIOA->CRL|=0XBB000000; //复用功能输出
- GPIOB->CRL&=0XFFFFFF00; //PB0 CH3 PB1 CH4
- GPIOB->CRL|=0X000000BB; //复用功能输出
-
- TIM3->ARR=arr; //设定计数器自动重装值
- TIM3->PSC=psc; //预分频器不分频
- TIM3->CCMR1|=7<<4; //CH1 PWM2模式
- TIM3->CCMR1|=1<<3; //CH1预装载使能
- TIM3->CCER|=1<<0; //OC1 输出使能
-
-
- TIM3->CCMR1|=7<<12; //CH2 PWM2模式
- TIM3->CCMR1|=1<<11; //CH2预装载使能
- TIM3->CCER|=1<<4; //OC2 输出使能
-
- TIM3->CCMR2|=7<<4; //CH3 PWM2模式
- TIM3->CCMR2|=1<<3; //CH3预装载使能
- TIM3->CCER|=1<<8; //OC3 输出使能
-
-
- TIM3->CCMR2|=7<<12; //CH4 PWM2模式
- TIM3->CCMR2|=1<<11; //CH4预装载使能
- TIM3->CCER|=1<<12; //OC4 输出使能
- TIM3->CCR1=3600; //OC4 输出使能
-
- TIM3->CCR2=3000; //OC4 输出使能
- TIM3->CCR3=5400; //OC4 输出使能
- TIM3->CCR4=5000; //OC4 输出使能
-
- TIM3->CR1|=1<<7; //ARPE使能
- TIM3->CR1|=0x01; //使能定时器3
- }
复制代码
下载(此代码年代久远,采用的老版本的库和老版本Keil编写的):
四路PWM输出测试.zip
(44.75 KB, 下载次数: 48)
|