PWM产生杂波,请问是什么原因?

2019-07-21 02:44发布

利用定时器2配置双通道输出,分别为PA0和PA1,配置代码如下,发现PA0输出正常,PA1,有很多杂波,请问一下是什么原因?
void TIM2_PWM_Init(u32 arr,u32 psc)
{  


GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);  
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); 

GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM2); 
GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM2);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;       
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;     
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;      
GPIO_Init(GPIOA,&GPIO_InitStructure);            
 
TIM_TimeBaseStructure.TIM_Prescaler=psc; 
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period=arr;  
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; 

TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);

//??????TIM2 Channel1 PWM????  
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

TIM_OC1Init(TIM2, &TIM_OCInitStructure); 
TIM_OC2Init(TIM2, &TIM_OCInitStructure); 

TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable); 
TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable); 
  
TIM_ARRPreloadConfig(TIM2,ENABLE);

TIM_Cmd(TIM2, ENABLE); 
 
}  
逻辑分析仪输出的结果如下:

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
homo
1楼-- · 2019-07-21 03:32
 精彩回答 2  元偷偷看……
hpeng1874
2楼-- · 2019-07-21 04:44
直接下载到板子上,用示波器看看
homo
3楼-- · 2019-07-21 04:45
就是在板子上直接运行,然后使用LA2016逻辑分析仪抓取的结果

一周热门 更多>