查看: 3975|回复: 2

STM32F0 discovery开发板 EXTI和SysTick问题

[复制链接]
  • TA的每日心情
    奋斗
    2014-5-8 09:56
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-9-24 15:15:32 | 显示全部楼层 |阅读模式
    分享到:
    纯粹的新手,学习F0。基本照抄的官方EXTI例程,我想在中断处理函数中加上让LED3和LED4亮一会再灭掉,可是执行到亮了以后延时600毫秒时,LED怎么也不灭了。这个Delay_ms用到了SysTick,自己写一个空循环的延时程序就可以正常执行。主程序中调用Delay_ms也正常,这会是什么原因造成的?请高手指教。

    void EXTI0_1_IRQHandler(void)
    {
      if(EXTI_GetITStatus(EXTI_Line0) != RESET)
      {
        /* Turn on LED3 and LED4 during 1s each time User button is pressed */
        GPIO_WriteBit(LED3_GPIO_PORT, LED3_PIN | LED4_PIN, Bit_SET);
          
        /* wait for 600ms */
        Delay_ms(600);
          
        /* Turn off LED3 and LED4 after 1s each time User button is pressed */
        GPIO_WriteBit(LED4_GPIO_PORT, LED3_PIN | LED4_PIN, Bit_RESET);
                            
        /* BlinkMode: 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6, then re-cycle */
        BlinkMode++;
        if(BlinkMode == 7)
        {
           BlinkMode = 0;
        }
       
        /* Clear the EXTI line 0 pending bit */
        EXTI_ClearITPendingBit(EXTI_Line0);
      }
    }

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-6-12 21:59
  • 签到天数: 647 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-9-24 15:23:12 | 显示全部楼层
    这个要看中断产生没,楼主可以测试下  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-5-8 09:56
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

     楼主| 发表于 2013-9-24 15:42:31 | 显示全部楼层
    按开发板上的user键产生中断了,但delay_ms函数要用到的SysTick中断始终没发生,600不会减少为599,导致后面的灭灯也不执行。
    是不是涉及到中断优先级的设置问题?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 19:38 , Processed in 0.126467 second(s), 19 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.