14883|0

5

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

高级定时器TIM_RepetitionCounter的设置问题 [复制链接]

请教一下,STM32F2xx系列高级定时器TIM1和TIM8的TIM_RepetitionCounter到底应该怎么设置才能生效?我的不管怎么设置,就没有效果,相当于TIM_RepetitionCounter=0.代码如下:

#define TIMx TIM8
uint32_t period_ = ...
#define PRESCALER xxx

void Thb7128Bsp::configureTimer() {
        configGpio(); //
        
        TIM_Cmd(TIMx, DISABLE);

        /* Time base configuration */
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);

        TIM_TimeBaseStructure.TIM_Period = period_;
        TIM_TimeBaseStructure.TIM_Prescaler = PRESCALER;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_RepetitionCounter = 10;        // 这里怎么设置结果都一样,相当于0

        TIM_TimeBaseInit(TIMx, &TIM_TimeBaseStructure);

        TIM_SetAutoreload(TIMx, period_);
        TIM_ARRPreloadConfig(TIMx, ENABLE);

        TIM_GenerateEvent(TIMx, TIM_EventSource_Update);

        /* Prescaler configuration */
        TIM_ClearFlag(TIMx, TIM_FLAG_Update);
        TIM_ClearITPendingBit(TIMx, TIM_IT_Update);
        TIM_ITConfig(TIMx, TIM_IT_Update, ENABLE);

        TIM_OCInitTypeDef ocInitStructure;
        TIM_OCStructInit(&ocInitStructure);

        ocInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        ocInitStructure.TIM_OutputState = TIM_OutputState_Disable;
        ocInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
        ocInitStructure.TIM_Pulse = CalcCompare(period_);
//        ocInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        ocInitStructure.TIM_OCNPolarity = TIM_OCPolarity_High;
//        ocInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
        ocInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;

        TIM_OCxInit(TIMx, &ocInitStructure);


        TIM_BDTRInitTypeDef bdtrInitStructure;
        TIM_BDTRStructInit(&bdtrInitStructure);
        bdtrInitStructure.TIM_OSSRState = TIM_OSSRState_Disable;
        bdtrInitStructure.TIM_OSSIState = TIM_OSSIState_Disable;
        bdtrInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
        bdtrInitStructure.TIM_DeadTime = 0x00;
        bdtrInitStructure.TIM_Break = TIM_Break_Disable;
        bdtrInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_Low;
        bdtrInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;
        TIM_BDTRConfig(TIMx, &bdtrInitStructure);

        TIM_CtrlPWMOutputs(TIMx, ENABLE);

//        TIM_SelectCOM(TIMx, ENABLE);
//
//        TIM_CCPreloadControl(TIMx, ENABLE);

        setFrequency(CalcFrequency(period_));

        TIM_CCxCmd(TIMx, TIM_Channel_x, TIM_CCx_Enable);

        //        TIM_Cmd(TIMx, ENABLE);
}
此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表