原子哥,我想把TIM2_CH3设置成PWM 输出,可是现在的代码是这样的,但是不能够输出,我想问一下是什么情况。

2019-07-21 01:49发布

//??×?????????
void TIM2_PWM_Init(u16 arr , u16 psc )
{
GPIO_InitTypeDef GPIO_InitStructure ;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;
TIM_OCInitTypeDef TIM_OCInitStructure ;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE );
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE );


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;

GPIO_Init(GPIOA , &GPIO_InitStructure);

// ??????TIM2 ur
TIM_TimeBaseStructure.TIM_Period = arr ;
TIM_TimeBaseStructure.TIM_Prescaler = psc ;
TIM_TimeBaseStructure.TIM_ClockDivision = 0 ;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit (TIM2 , &TIM_TimeBaseStructure );

//??????TIM2 Channel2 PWM ????
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High ;
TIM_OC2Init(TIM2 , &TIM_OCInitStructure );

TIM_OC2PreloadConfig (TIM2 ,TIM_OCPreload_Enable );
TIM_Cmd (TIM2 , ENABLE );

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
wang12zhe
1楼-- · 2019-07-21 04:48
TIM_OC2Init(TIM2 , &TIM_OCInitStructure );

TIM_OC2PreloadConfig (TIM2 ,TIM_OCPreload_Enable );

改成

TIM_OC3Init(TIM2 , &TIM_OCInitStructure );

TIM_OC3PreloadConfig (TIM2 ,TIM_OCPreload_Enable );

然后设置
TIM_SetCompare3(TIM2, pwm_value);
杀手天使
2楼-- · 2019-07-21 08:43
沙发  跳变值没有设置
烟酒不沾
3楼-- · 2019-07-21 09:07
 精彩回答 2  元偷偷看……
水滴滴水
4楼-- · 2019-07-21 09:24
回复【2楼】杀手天使:
---------------------------------
谢谢指导。
水滴滴水
5楼-- · 2019-07-21 14:23
回复【3楼】烟酒不沾:
---------------------------------
谢谢指导,我在main函数中添加的TIM_SetCompare3(TIM2, pwm_value);
我想问一下为什么添加TIM_SetCompare2(TIM2, pwm_value);不行呢?
谢谢指导,没想到论坛这么快给我答案
水滴滴水
6楼-- · 2019-07-21 19:44
回复【4楼】wang12zhe:
---------------------------------
谢谢指导,我想问你一下,为什么是我的程序这样是不行的呢?TIM_OC2Init(TIM2 , &TIM_OCInitStructure ); 

TIM_OC2PreloadConfig (TIM2 ,TIM_OCPreload_Enable ); 
在按照你的指导下更改后是好用的了。谢谢啦

一周热门 更多>