查看: 9079|回复: 10

stm32运行一段后不进定时器中断,不知道是什么原因

[复制链接]

该用户从未签到

发表于 2014-8-2 14:02:23 | 显示全部楼层 |阅读模式
分享到:
目前遇到的问题,设备有一个led灯,程序正常运行时闪烁;主程序中开启看门狗了,LED闪烁是在定时器中断中完成的,但现在LED不闪了,程序还没有复位;我猜测,程序中主程序还在正常运行,只是不能进入定时器中断了;

程序中一共开启了5个中断,中断优先级分组设置为 NVIC_PriorityGroup_0,一共开启5个中断,三个串口中断子优先级分别为1、2、3,一个定时器2中断子优先级为0,一个RTC中断优先级为4;



定时器中断程序如下
void TIM2_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)
  {

  //第一层函数使用。
  if(systime2!=0xffffffff)
  systime2++;
  if(systime3!=0xffffffff)
  systime3++;
  if(systime4!=0xffffffff)
  systime4++;
  if(systime44!=0xffffffff)
  systime44++;
  if(systime45!=0xffffffff)
  systime45++;
  //ms延时函数用
  if(systime10 <= 60000)         
  {
      systime10++;                //系统心跳时间累加
  }

  //-------------------------------------------------------
  //-------------------------------------------------------
  //LED灯状态控制
  if((systime5 < led_en) && (led_en>0))
  {
     LED_EN_HIGH();//亮
  }
  else if(led_en<4000)
  {
     LED_EN_LOW(); //灭
  }
  systime5 ++;
  if(systime5 >= (led_en<<1))
  {
     systime5 = 0;
  }
//------------------------------------------------------------------------------
    capture = TIM_GetCapture1(TIM2);
    TIM_SetCompare1(TIM2, capture + CCR1_Val);
  }
  TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
}



回复

使用道具 举报

  • TA的每日心情
    开心
    2014-8-7 16:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-8-2 15:03:45 | 显示全部楼层
    我帮你分析一下啊,按照你的分析你程序是运行的,定时器优先级那么高 不可能不会进去定时器,那么有可能就是定时器配合是否正确。
    给你的建议:
    你能否通过jlink仿真一下看程序跑哪里去了?或者在程序运行中加一些标志如LED闪烁,串口发送数据等判断程序运行到哪儿了呢。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-7 16:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-8-2 15:06:52 | 显示全部楼层
    还有就是验证你的看门狗能否工作,就是不去喂狗,系统能否到时间自动复位。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2014-8-2 15:27:15 | 显示全部楼层
    本帖最后由 外面的世界很精 于 2014-8-2 15:28 编辑

    测试过看门狗,工作正常;这个问题不是上电就会有,有可能需要连续上电几天后才会出现,这个是最头疼的一点,而且我没有手段重现问题
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-7 16:04
  • 签到天数: 40 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-8-2 15:40:06 | 显示全部楼层
    外面的世界很精 发表于 2014-8-2 15:27
    测试过看门狗,工作正常;这个问题不是上电就会有,有可能需要连续上电几天后才会出现,这个是最头疼的一点 ...

    这个就很头疼了啊!我也没招了,希望你能早点找到问题所在!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-12-3 18:51
  • 签到天数: 772 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-8-3 06:18:26 | 显示全部楼层
    这个是优先级没有选对,你把定时器优先级设比定时器高,试下,再有用得着看门狗吗,闭了它
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2014-8-4 08:55:40 | 显示全部楼层
    ddllxxrr 发表于 2014-8-3 06:18
    这个是优先级没有选对,你把定时器优先级设比定时器高,试下,再有用得着看门狗吗,闭了它 ...

    没太看明白什么意思?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2014-8-4 08:56:37 | 显示全部楼层
    谢谢各位的关注
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-27 22:19:58 | 显示全部楼层
    楼主解决了 我有时候也是而且我的中断 也有好多呢  和你 有时候差不多
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-6-28 22:59
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-6-28 23:41:55 | 显示全部楼层
    路过学习一下
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 19:31 , Processed in 0.200338 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.