STM8S003 TIM2_UPD_OVF_BRK_IRQHandler不进入中断

void Tim2_Init(void)
{
#if 0
TIM2_TimeBaseInit( TIM2_PRESCALER_16 ,999);
TIM2_PrescalerConfig(TIM2_PRESCALER_16,TIM2_PSCRELOADMODE_IMMEDIATE);
TIM2_ARRPreloadConfig(ENABLE);
TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE);
TIM2_Cmd(ENABLE);
#else
TIM2_DeInit();

/* Time base configuration */
TIM2_TimeBaseInit(TIM2_PRESCALER_1, 0x0010);
TIM2_ARRPreloadConfig(ENABLE);
TIM2_ITConfig(TIM2_IT_UPDATE , ENABLE);
TIM2_UpdateRequestConfig(TIM2_UPDATESOURCE_REGULAR); //中断源选择为只有溢出才能触发
TIM2_GenerateEvent(TIM2_EVENTSOURCE_UPDATE); //产生更新事件,不触发中断(这就是我的解决方法,此处即更新了预分频器)

TIM2->SR1 &= 0xFE; //清除中断,按常理应该没用
TIM2->IER |= 0X01; //使能TIMER
TIM2_Cmd(ENABLE); //开始TIM2
#endif
}
这样配置都不进入中断实在没办法,后发现TIM2_CNTRH TIM2_CNTRL会随着TIM2_ARRH TIM2_ARRL改变,就是不超过这个值,说明设置起作用了,但不中断想到了全局中断,百度一下找到了全局中断 asm(“sim”); // 关全局中断 asm(“rim”); // 开全局中断
所以搞定了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值