6608|6

252

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

TIM2,采用timing模式,不能进入中断 [复制链接]

TIM2的输入比较,为什么模式选择 timing就进不了中断

如题,我的程序如下: 当 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;时,不能进入中断,但是如果改成其他模式就可以
 

void TIM2_Configuration(void)

 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;     

 TIM_OCInitTypeDef TIM_OCInitStructure;
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 ,ENABLE);    
 
 TIM_TimeBaseStructure.TIM_Period = 65535;   

 TIM_TimeBaseStructure.TIM_Prescaler = 0;      

 TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);
 TIM_PrescalerConfig(TIM2, 4, TIM_PSCReloadMode_Immediate);     
   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;
 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
 TIM_OCInitStructure.TIM_Pulse = 32768;                  
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC2Init(TIM2, & TIM_OCInitStructure);
 TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Disable);    

 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 16384;
 //TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC3Init(TIM2, & TIM_OCInitStructure);
 TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Disable);   //不使能预装载寄存器


 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 8192;
 //TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC4Init(TIM2, & TIM_OCInitStructure);
 TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Disable);   //不使能预装载寄存器

    TIM_ITConfig(TIM2,TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4,ENABLE);

    /* TIM2 enable counter */
    TIM_Cmd(TIM2, ENABLE);//开启时钟

TIM2的输入比较,为什么模式选择 timing就进不了中断

如题,我的程序如下: 当 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;时,不能进入中断,但是如果改成其他模式就可以
 

void TIM2_Configuration(void)

 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;     

 TIM_OCInitTypeDef TIM_OCInitStructure;
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 ,ENABLE);    
 
 TIM_TimeBaseStructure.TIM_Period = 65535;   

 TIM_TimeBaseStructure.TIM_Prescaler = 0;      

 TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);
 TIM_PrescalerConfig(TIM2, 4, TIM_PSCReloadMode_Immediate);     
   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing;
 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
 TIM_OCInitStructure.TIM_Pulse = 32768;                  
 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC2Init(TIM2, & TIM_OCInitStructure);
 TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Disable);    

 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 16384;
 //TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC3Init(TIM2, & TIM_OCInitStructure);
 TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Disable);   //不使能预装载寄存器


 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_Pulse = 8192;
 //TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
 TIM_OC4Init(TIM2, & TIM_OCInitStructure);
 TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Disable);   //不使能预装载寄存器

    TIM_ITConfig(TIM2,TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4,ENABLE);

    /* TIM2 enable counter */
    TIM_Cmd(TIM2, ENABLE);//开启时钟

我在用TIM2做输出比较时,也就是按照keil 安装目录下的ST的timebase例子实验,发现不能进入中断,可是如果把模式改为PWM1或Toggle就可以进入
此帖出自stm32/stm8论坛

最新回复

最好是连接JLINK 或其他的工具,如果只是用Keil ARM软件仿真,有些功能可能不是很容易看到结果。  详情 回复 发表于 2013-3-14 11:09
点赞 关注
 

回复
举报

252

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
没有人遇到过吗
此帖出自stm32/stm8论坛
 
 

回复

4005

帖子

0

TA的资源

版主

板凳
 
nvic
此帖出自stm32/stm8论坛
 
 

回复

252

帖子

0

TA的资源

一粒金砂(高级)

4
 
发现问题了,其实没有什么问题,主要是用keil仿真看不到波形,用示波器看了看,还是有波形的。
此帖出自stm32/stm8论坛

点评

keil不能仿真管脚上的信号  详情 回复 发表于 2013-3-7 10:02
是用示波器在定时器2配置的输出引脚上看的吗?不是说TIM_OCMode_Timing:在比较成功时不对输出引脚的状态产生影响,适合于做定时使用吗?麻烦给一下回复啊 谢谢了 遇到这方面的问题了 急急急???qq:845496118  详情 回复 发表于 2013-3-6 20:53
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 4楼 feiante 的帖子

是用示波器在定时器2配置的输出引脚上看的吗?不是说TIM_OCMode_Timing:在比较成功时不对输出引脚的状态产生影响,适合于做定时使用吗?麻烦给一下回复啊 谢谢了 遇到这方面的问题了 急急急???qq:845496118
此帖出自stm32/stm8论坛
 
 
 

回复

4005

帖子

0

TA的资源

版主

6
 

回复 4楼 feiante 的帖子

keil不能仿真管脚上的信号
此帖出自stm32/stm8论坛
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

7
 
最好是连接JLINK 或其他的工具,如果只是用Keil ARM软件仿真,有些功能可能不是很容易看到结果。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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