[STM32F0] CCER寄存器的CC1E位一直在变

[复制链接]
959|10
 楼主| wenfen 发表于 2019-2-20 09:14 | 显示全部楼层 |阅读模式
使能通道1TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Enable)后
lizye 发表于 2019-2-20 09:17 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| wenfen 发表于 2019-2-20 09:20 | 显示全部楼层

TIM1配置:
void TIM_PWM_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_InitStruct;
TIM_OCInitTypeDef       TIM_OCInitStruct;
TIM_BDTRInitTypeDef     TIM_BDTRInitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_TIM1, ENABLE);
TIM_DeInit(TIM1);

TIM_InitStruct.TIM_Period             = period;
TIM_InitStruct.TIM_Prescaler          = 0;
TIM_InitStruct.TIM_CounterMode        = TIM_CounterMode_Up;
TIM_InitStruct.TIM_ClockDivision      = TIM_CKD_DIV1;
TIM_InitStruct.TIM_RepetitionCounter  = 0;
TIM_TimeBaseInit(TIM1,&TIM_InitStruct);
TIM_ARRPreloadConfig(TIM1,ENABLE);

  TIM_OCInitStruct.TIM_OCMode           = TIM_OCMode_PWM1;
TIM_OCInitStruct.TIM_OutputState      = TIM_OutputState_Enable;
TIM_OCInitStruct.TIM_OutputNState   = TIM_OutputNState_Enable;
TIM_OCInitStruct.TIM_Pulse       = duty;
TIM_OCInitStruct.TIM_OCPolarity     = TIM_OCPolarity_High;
TIM_OCInitStruct.TIM_OCNPolarity    = TIM_OCNPolarity_Low;
TIM_OCInitStruct.TIM_OCIdleState    = TIM_OCIdleState_Reset;
TIM_OCInitStruct.TIM_OCNIdleState    = TIM_OCNIdleState_Set;

TIM_OC1Init(TIM1,&TIM_OCInitStruct);
TIM_OC2Init(TIM1,&TIM_OCInitStruct);
TIM_OC3Init(TIM1,&TIM_OCInitStruct);

// TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable;
// TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable;
// TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
// TIM_BDTRInitStructure.TIM_DeadTime=0x00;
// TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;
// TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Enable;
// TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);

TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM1,TIM_OCPreload_Enable);
// TIM_ClearITPendingBit(TIM1,TIM_IT_CC1);
TIM_Cmd(TIM1,ENABLE);
TIM_CCPreloadControl(TIM1,DISABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE);

}
gongche 发表于 2019-2-20 09:23 | 显示全部楼层
那你用示波器看后,实际波形有没有变呢?
huwr 发表于 2019-2-20 09:31 | 显示全部楼层
可能你程序哪里一直在更新吧;
mmuuss586 发表于 2019-2-20 09:33 | 显示全部楼层
没看明白
 楼主| wenfen 发表于 2019-2-20 09:33 | 显示全部楼层
实际波形周期从167us变成2.8us
 楼主| wenfen 发表于 2019-2-20 09:37 | 显示全部楼层
TIM_CCPreloadControl(TIM1,DISABLE);改成ENABLE 后正常,但是TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Disable);无法关闭通道1比较输出
 楼主| wenfen 发表于 2019-2-20 09:40 | 显示全部楼层
我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
wakayi 发表于 2019-3-6 12:09 | 显示全部楼层
这个标志位代表的是什么呢
wowu 发表于 2019-3-6 12:12 | 显示全部楼层
这是不是一个使能位呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部