请帮助看一下这段TIM1定时器输出PWM的代码

2019-07-20 20:46发布

想用TIM1输出PWM,首先照例程,这段TIM14的代码用起来没有问题,PA7可以正常输出PWM。
QQ图片20160815113033.png
然后照搬,改成了高级定时器TIM1,但是PA8没有输出。
QQ图片20160815113039.png
不知道是什么原因,还专门看了stm32的手册,然后加了个RCR=10。
8f31aeedf9dfd3a24bee89af118eb672_r.png
在debug的时候,发现CNT是在计数,但是RCR并没有减少,一直是10,这说明CNT并没有溢出事件?
14f30a7150269b1038c7846bfb19c453_b.png
不知是哪儿的问题,希望各位高手能帮忙看一下。

补充上文字代码

[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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
特朗姆斯
1楼-- · 2019-07-20 22:30
初始化函数最后再加一句:

TIM1->BDTR |= ((uint16_t)0x8000);
carvenl
2楼-- · 2019-07-21 03:28
 精彩回答 2  元偷偷看……
特朗姆斯
3楼-- · 2019-07-21 03:46
carvenl 发表于 2016-8-15 16:41
非常感谢,搞定了,看来还是看手册不够仔细啊


搞定就好

一周热门 更多>