你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

TIM1更新事件中断过快的问题

[复制链接]
blazeblade 提问时间:2015-5-12 23:54 /
大家好,我调试TIM1定时器时出现一个很奇怪的问题。我打算配置定时器,生成一个10KHz的PWM波,同时开启更新事件中断。在中断服务程序中,我做了一个软件计数器TIM1_BRK_UP_TRG_COM_IRQTicker,每次进中断都累加一次,当累加到10000时,另一个计数器i加1。在正常情况下,一个PWM周期会有两个更新事件,产生两个中断,中断周期应该为20KHz,i的累加周期应该为0.5s。但是在WatchWindow里观察,i刷新很快。在TIM1_BRK_UP_TRG_COM_IRQTicker++处加一个断点,发现每次进中断,TIM1->CNT只计数了26。以上现象让我百思不得其解。盼望哪位经验丰富的朋友能够帮我指出问题所在。多谢了!

代码如下:
TIM1配置:
void Tim1Init(void)
{
        
                TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
               
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
                DBGMCU_APB2PeriphConfig(DBGMCU_TIM1_STOP, ENABLE);   

                TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
                TIM_DeInit(TIM1);  

                TIM_ARRPreloadConfig(TIM1,ENABLE);
               
                TIM_TimeBaseStructure.TIM_Prescaler = 0;
                TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned1;
                TIM_TimeBaseStructure.TIM_Period = 2399;//ÐÅºÅÆµÂÊ10KHz;
                TIM_TimeBaseStructure.TIM_ClockDivision = 0;
                TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
                TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
               
                TIM_Cmd(TIM1,ENABLE);//TIM1 counter enable

                TIM_ClearFlag(TIM1, TIM_FLAG_Update);
                TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);
}


中断程序:
void TIM1_BRK_UP_TRG_COM_IRQHandler(void)
{
                TIM1_BRK_UP_TRG_COM_IRQTicker++;
               
                if(TIM1_BRK_UP_TRG_COM_IRQTicker == 10000)
                {
                        i++;
                        TIM1_BRK_UP_TRG_COM_IRQTicker = 0;
                }
}

收藏 评论4 发布时间:2015-5-12 23:54

举报

4个回答
eurphan 回答时间:2015-5-15 13:44:07
写的真好啊      ,简单易懂
mark0668 回答时间:2015-5-16 00:21:26
谢谢分享
Winddddd 回答时间:2015-5-16 00:40:20
不知道你的系统时钟和定时器时钟
blazeblade 回答时间:2015-6-15 20:15:58
问题已解决:需要在中断里先判断是哪种中断,最后要清中断标志!奇怪,为什么跟别的芯片不一样,还要判断是哪种中断?

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版