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

[复制链接]
1064|15
 楼主| wenfen 发表于 2023-2-17 20:17 | 显示全部楼层 |阅读模式
使能通道1TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Enable)后
 楼主| wenfen 发表于 2023-2-17 20: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);

}
xxrs 发表于 2023-2-17 20:22 | 显示全部楼层
那你用示波器看后,实际波形有没有变呢?
supernan 发表于 2023-2-17 20:23 | 显示全部楼层
可能你程序哪里一直在更新吧;
lizye 发表于 2023-2-17 20:24 | 显示全部楼层
没看明白
 楼主| wenfen 发表于 2023-2-17 20:26 | 显示全部楼层
实际波形周期从167us变成2.8us
 楼主| wenfen 发表于 2023-2-17 20:31 | 显示全部楼层
TIM_CCPreloadControl(TIM1,DISABLE);改成ENABLE 后正常,但是TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Disable);无法关闭通道1比较输出
zhuhuis 发表于 2023-2-17 20:32 | 显示全部楼层
这个标志位代表的是什么呢
huwr 发表于 2023-2-17 20:34 | 显示全部楼层
这是不是一个使能位呀
yufe 发表于 2023-2-17 20:35 | 显示全部楼层
产什么什么不好的后果了吗
huangchui 发表于 2023-2-17 20:36 | 显示全部楼层
周期为什么会变化这么多啊
yufe 发表于 2023-2-17 20:38 | 显示全部楼层

非常正常啊  在调试的过程中就是一直在变化的 但是不需要太过在意
zhanghqi 发表于 2023-2-17 20:39 | 显示全部楼层
不要在调试过程中看寄存器的值  那个没有什么参考性
langgq 发表于 2023-2-17 20:41 | 显示全部楼层
这个寄存器是干什么用的呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

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