定时器输出四路PWM求助(求各路大神指点)

2019-07-21 03:44发布

用示波器测了只有CH1能输出波形
寄存器配置如下 [mw_shl_code=c,true]void TIM4_PWM_Init(u16 arr,u16 psc)//PD12 PD13 PD14 PD15 { RCC->APB1ENR|=1<<2;//使能TIM4 RCC->AHB1ENR|=1<<3;//使能GPIOD GPIO_Set(GPIOD,PIN12|PIN13|PIN14|PIN15,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_AF_Set(GPIOD,12,2);     GPIO_AF_Set(GPIOD,13,2);      GPIO_AF_Set(GPIOD,14,2);      GPIO_AF_Set(GPIOD,15,2); TIM4->ARR=arr; TIM4->SC=psc; TIM4->CCMR1|=6<<4;//PWM1 mode TIM4->CCMR1|=1<<3;//CH1预装载使能     TIM4->CCMR1|=1<<10;//CH2      TIM4->CCMR2|=1<<3;//CH3      TIM4->CCMR2|=1<<10;//CH4 TIM4->CCER|=0<<1;//OC1 高电平有效 TIM4->CCER|=1<<0;//OC1使能      TIM4->CCER|=1<<4;//OC2      TIM4->CCER|=0<<5;//OC2      TIM4->CCER|=1<<8;//OC3      TIM4->CCER|=0<<9;//OC3      TIM4->CCER|=1<<12;//OC4      TIM4->CCER|=0<<13;//OC4 TIM4->CR1|=1<<7;//ARPE使能 TIM4->CR1|=1<<0;//使能定时器4 }[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
kiti1013
2019-07-21 04:39
找到问题了 是自己看手册不够细致 之配置了CH1的PWM模式 CH2 CH3 CH4没有配置  附上可用代码 [mw_shl_code=c,true]void TIM4_PWM_Init(u16 arr,u16 psc)//PD12 PD13 PD14 PD15 { RCC->APB1ENR|=1<<2;//使能TIM4 RCC->AHB1ENR|=1<<3;//使能GPIOD GPIO_Set(GPIOD,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_Set(GPIOD,PIN13,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_Set(GPIOD,PIN14,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_Set(GPIOD,PIN15,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); GPIO_AF_Set(GPIOD,12,2); GPIO_AF_Set(GPIOD,13,2); GPIO_AF_Set(GPIOD,14,2); GPIO_AF_Set(GPIOD,15,2); TIM4->ARR=arr; TIM4->SC=psc; TIM4->CCMR1|=6<<4;//PWM1 mode TIM4->CCMR1|=6<<12; TIM4->CCMR1|=1<<3;//CH1预装载使能 TIM4->CCMR1|=1<<10;//CH2 TIM4->CCMR2|=1<<3;//CH3 TIM4->CCMR2|=1<<10;//CH4 TIM4->CCMR2|=6<<4; TIM4->CCMR2|=6<<12; TIM4->CCER|=0<<1;//OC1 高电平有效 TIM4->CCER|=1<<0;//OC1使能 TIM4->CCER|=1<<4;//OC2 TIM4->CCER|=0<<5;//OC2 TIM4->CCER|=1<<8;//OC3 TIM4->CCER|=0<<9;//OC3 TIM4->CCER|=1<<12;//OC4 TIM4->CCER|=0<<13;//OC4 TIM4->CR1|=1<<7;//ARPE使能 TIM4->CR1|=1<<0;//使能定时器4 } [/mw_shl_code]

一周热门 更多>