我软件仿真这两种模式发现输出波形一样,谁能告诉我他们的区别?
void Tim3_init(u16 arr,u16 psc)
{
RCC->APB2ENR|=1<<4; //使能PORTC时钟
RCC->APB1ENR|=1<<1;//使能定时器3
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
AFIO->MAPR|=3<<10; //完全重映像,TIM3_CH1/PC6,CH2/PC7,CH3/PC8,CH4/PC9
GPIOC->CRL&=0X00FFFFFF;//PC6/7输出
GPIOC->CRL|=0XBB000000;//复用功能输出
GPIOC->ODR|=3<<6;//PC6/7上拉
TIM3->ARR=arr;//设置重装值
TIM3-> SC=psc;//设置预分频
TIM3->CR1=0x8000; //ARPE使能,自动重装载使能
TIM3->CCMR1|=1<<3; //输出比较1预装载使能
TIM3->CCMR1|=1<<11; //输出比较2预装载使能
TIM3->CCER |= 1<<0;//OC1信号输出到对应的输出引脚。
TIM3->CCER |= 1<<5; //OC2信号输出到对应的输出引脚。
TIM3->CCMR1|=3<<5;//110:PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;
TIM3->CCMR1|=7<<12;//111:PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道2为无效电平,否则为有效电平;
TIM3->CCER|=1<<0; //OC1 输出使能
TIM3->CCER|=1<<4; //OC2 输出使能
TIM3->CCR1 = 900;
TIM3->CCR2 = 900;
TIM3->EGR |= 1<<1; //CC1G:产生捕获/比较1事件
TIM3->EGR |= 1<<2; //CC2G:产生捕获/比较2事件
TIM3->CR1|=1<<0; //开启定时器TIM3
}
|