初级会员

- 积分
- 151
- 金钱
- 151
- 注册时间
- 2011-6-30
- 在线时间
- 0 小时
|
发表于 2011-7-31 10:41:59
|
显示全部楼层
四路PWM输出
void RPWM_GPIO_Config(){//PA8,PA9作为TIM1通道1,2输出
RCC->APB2ENR|=1<<(2+0);
GPIOA->CRH&=0xFFFFFF00;
GPIOA->CRH|=0x000000BB;
GPIOA->ODR|=3<<8;
}
void RPWM_Init(u16 arr,u16 psc){
RCC->APB2ENR|=1<<11;
LPWM_GPIO_Config();
TIM1->ARR=arr;
TIM1-> SC=psc;
TIM1->CCMR1|=7<<4;
TIM1->CCMR1|=1<<3;
TIM1->CCER|=1<<0;
TIM1->CCMR1|=7<<12;
TIM1->CCMR1|=1<<11;
TIM1->CCER|=1<<4;
TIM1->CR1|=1<<7;
TIM1->CR1|=1<<0;
TIM1->BDTR|=1<<15;
}
void LPWM_GPIO_Config(){
RCC->APB2ENR|=1<<(2+0);
GPIOA->CRL&=0xFFFFFF00;
GPIOA->CRL|=0x000000BB;
GPIOA->ODR|=3<<0;
}
void LPWM_Init(u16 arr,u16 psc){
RCC->APB1ENR|=1<<0;///定时器2时钟使能
RPWM_GPIO_Config();
TIM2->ARR=arr;
TIM2-> SC=psc;
TIM2->CCMR1|=7<<4;
TIM2->CCMR1|=1<<3;
TIM2->CCER|=1<<0;
TIM2->CCMR1|=7<<12;
TIM2->CCMR1|=1<<11;
TIM2->CCER|=1<<4;
TIM2->CR1=1<<7;
TIM2->CR1|=1<<0;
TIM2->BDTR|=1<<15;
}
初始化:
LPWM_Init(900,0);
TIM2->CCR1=450;
TIM2->CCR2=450;
RPWM_Init(900,0);
TIM1->CCR1=450;
TIM1->CCR2=450; |
|