打印
[STM32F0]

CCER寄存器的CC1E位一直在变

[复制链接]
659|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 | 只看该作者
那你用示波器看后,实际波形有没有变呢?

使用特权

评论回复
5
huwr| | 2019-2-20 09:31 | 只看该作者
可能你程序哪里一直在更新吧;

使用特权

评论回复
6
mmuuss586| | 2019-2-20 09:33 | 只看该作者
没看明白

使用特权

评论回复
7
wenfen|  楼主 | 2019-2-20 09:33 | 只看该作者
实际波形周期从167us变成2.8us

使用特权

评论回复
8
wenfen|  楼主 | 2019-2-20 09:37 | 只看该作者
TIM_CCPreloadControl(TIM1,DISABLE);改成ENABLE 后正常,但是TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Disable);无法关闭通道1比较输出

使用特权

评论回复
9
wenfen|  楼主 | 2019-2-20 09:40 | 只看该作者
我再好好缕一缕吧,有了好消息及时通知大家,结贴喽

使用特权

评论回复
10
wakayi| | 2019-3-6 12:09 | 只看该作者
这个标志位代表的是什么呢

使用特权

评论回复
11
wowu| | 2019-3-6 12:12 | 只看该作者
这是不是一个使能位呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝