打印
[ARM入门]

新手求教定时器通道单独关闭

[复制链接]
873|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhquanx|  楼主 | 2019-5-31 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIM4_Configuration(void)
{
        u32        temp;
        TIM_TimeBaseInitTypeDef        TIM_TimeBaseInitStruct;
        TIM_OCInitTypeDef TIM_OCInitStruct;

        temp = SystemCoreClock / 1000000;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);                       
        TIM_DeInit(TIM4);
        if(SystemCoreClock > 36000000)
        {
                TIM_TimeBaseInitStruct.TIM_Prescaler = 1;
                TIM_TimeBaseInitStruct.TIM_Period = PWM_Period * temp / 2;
                TIM_OCInitStruct.TIM_Pulse = PWM_Recharge * temp / 2;
        }
        else
        {
                TIM_TimeBaseInitStruct.TIM_Prescaler = 0;
                TIM_TimeBaseInitStruct.TIM_Period = PWM_Period * temp;
                TIM_OCInitStruct.TIM_Pulse = PWM_Recharge * temp;
        }
        TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseInit(TIM4, &TIM_TimeBaseInitStruct);

        TIM_OCInitStruct.TIM_OCMode        = TIM_OCMode_PWM1;
        TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Disable;
        TIM_OCInitStruct.TIM_OCPolarity        = TIM_OCPolarity_High;
        TIM_OC1Init(TIM4, &TIM_OCInitStruct);
        TIM_OC2Init(TIM4, &TIM_OCInitStruct);
        TIM_OC3Init(TIM4, &TIM_OCInitStruct);
        TIM_OC4Init(TIM4, &TIM_OCInitStruct);

        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
        TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
        TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
        TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
        TIM_CCxCmd(TIM4, TIM_Channel_1, TIM_CCx_Enable);
        TIM_CCxCmd(TIM4, TIM_Channel_2, TIM_CCx_Enable);
        TIM_CCxCmd(TIM4, TIM_Channel_3, TIM_CCx_Enable);
        TIM_CCxCmd(TIM4, TIM_Channel_4, TIM_CCx_Enable);
        TIM_ARRPreloadConfig(TIM4, ENABLE);

        TIM_ClearFlag(TIM4, TIM_FLAG_Update);
        TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
        TIM_Cmd(TIM4, ENABLE);
       
        TIM_CCxCmd(TIM4, TIM_Channel_2, TIM_CCx_Disable); //放在这里面起作用
}


        。
        。
        。

        TIM4_Configuration();

//期望随时单独失能某一通道,但这样不起作用:       
        TIM_CCxCmd(TIM4, TIM_Channel_2, TIM_CCx_Disable);


        。
        。
        。

使用特权

评论回复

相关帖子

沙发
airwill| | 2019-6-15 17:26 | 只看该作者
是 STM32 吗? 上来一通代码, 谁知道你说什么

提问, 希望能够明确详细些.

使用特权

评论回复
板凳
支离益| | 2019-6-17 11:09 | 只看该作者
仔细阅读数据手册,每个定时器都有一个CCER位,看看它的作用。

使用特权

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

本版积分规则

1

主题

7

帖子

0

粉丝