初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2015-3-20
- 在线时间
- 0 小时
|
5金钱
我用STM32F103ZET6的定时器4输出4路PWM,但是通道一(PB6)的输出总是不合适,TIM4->CCR1=3600;而测得PB6的电压只有0.9v,有没有人知道这是为什么呀?
这是程序初始化
void PWM_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<2; //TIM4时钟使能
RCC->APB2ENR|=1<<3; //PORTB时钟使能
GPIOB->CRL&=0X00FFFFFF;//PB0输出
GPIOB->CRL|=0XBB000000;//复用功能输出
GPIOB->CRH&=0XFFFFFF00;//PB0输出
GPIOB->CRH|=0X000000BB;//复用功能输出
GPIOB->ODR|=1<<6;//PB6上拉
GPIOB->ODR|=1<<7;//PB7上拉
GPIOB->ODR|=1<<8;//PB8上拉
GPIOB->ODR|=1<<9;//PB9上拉
TIM4->ARR=arr;//设定计数器自动重装值
TIM4-> SC=psc;//预分频器不分频
TIM4->CCMR1|=7<<12; //CH2 PWM2模式
TIM4->CCMR1|=7<<4; //CH1 PWM2模式
TIM4->CCMR2|=7<<12; //CH4 PWM2模式
TIM4->CCMR2|=7<<4; //CH3 PWM2模式
TIM4->CCMR1|=1<<11; //CH2预装载使能
TIM4->CCMR1|=1<<3; //CH1预装载使能
TIM4->CCMR2|=1<<11; //CH4预装载使能
TIM4->CCMR2|=1<<3; //CH3预装载使能
TIM4->CCER|=1<<4; //OC2 输出使能
TIM4->CCER|=1; //OC2 输出使能
TIM4->CCER|=1<<12; //OC2 输出使能
TIM4->CCER|=1<<8; //OC2 输出使能
TIM4->CR1=0x8000; //ARPE使能
TIM4->CR1|=0x01; //使能定时器2 |
|