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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版