想用TIM1输出PWM,首先照例程,这段TIM14的代码用起来没有问题,PA7可以正常输出PWM。
然后照搬,改成了高级定时器TIM1,但是PA8没有输出。
不知道是什么原因,还专门看了stm32的手册,然后加了个RCR=10。
在debug的时候,发现CNT是在计数,但是RCR并没有减少,一直是10,这说明CNT并没有溢出事件?
不知是哪儿的问题,希望各位高手能帮忙看一下。
补充上文字代码
[mw_shl_code=c,true]void TIM1_PWM_Init(u32 arr,u32 psc)
{
RCC->AHB1ENR|=1<<0;
GPIO_Set(GPIOA,PIN8,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_25M,GPIO_PUPD_NONE);
GPIO_AF_Set(GPIOA,8,1); //PA8,AF1
RCC->APB2ENR|=1<<0;
TIM1->ARR=arr-1;
TIM1->PSC=psc-1;
TIM1->CCR1 = arr/2;
TIM1->RCR=10;
TIM1->CCMR1|=6<<4;
TIM1->CCER|=1<<0;
TIM1->CR1|=1<<0;
} [/mw_shl_code]
TIM1->BDTR |= ((uint16_t)0x8000);
搞定就好
一周热门 更多>