• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32 FOR循环怎么是设置循环次数的双倍

石头雷 2014-12-10 浏览量:2662

程序如下,引脚接的事LED灯,闪了6次

void EXTI1_IRQHandler(void)

{
 int i;
 if(EXTI_GetITStatus(EXTI_Line1)!=RESET)
 {
  EXTI_ClearITPendingBit(EXTI_Line1);
  for(i=0;i<3;i++)
  {
   GPIO_SetBits(GPIOC,GPIO_Pin_3);
   Delay();
   Delay();
   GPIO_ResetBits(GPIOC,GPIO_Pin_3);
   Delay();
   Delay();
   }
  }
 }
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 还可以做以下测试: 现在main函数中执行一次for循环 如果是3次那就是中断执行了两次 也可以在中断中加入计数器,按下松手后去查看计数器的值就清楚了
    • 发布于 2014-12-10
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:14
  • 请问闪了六次是指什么?亮了六次灭了六次?还是亮了三次灭了三次?不是很明白楼主的意思,如果要实现现有循环的两倍,可在for循环外面再加一个for循环啊,或者你直接把现在的for循环次数增加,把3改成6不就行了么?

    void EXTI1_IRQHandler(void)
    {
     int i,j;
     if(EXTI_GetITStatus(EXTI_Line1)!=RESET)
     {
      EXTI_ClearITPendingBit(EXTI_Line1);
      for(j=0;j<2;j++)
      {
       for(i=0;i<3;i++)
       {
        GPIO_SetBits(GPIOC,GPIO_Pin_3);
        Delay();
        Delay();
        GPIO_ResetBits(GPIOC,GPIO_Pin_3);
        Delay();
        Delay();
       }
      }
     }
    }

    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 一种方法: for (i = 0; i < 6; i++)


    第二种方法:

    for (j = 0; j < 2; j++)

    {

      for (i = 0; i < 3; i++)

    }


    如果是想执行的步长为2,就是for (i = 0; i < 3; i+=2)



    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断触发是怎么设置的?如果是上下沿可能会出现双倍的问题
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 到底是亮了三次灭了三次,还是亮了6次灭了6次。。
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 不明觉厉!!应该是个很简单的问题啊
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 非常感谢您的回答但是我的本意是想让LED灯闪三次的,可是却闪了六次的,问题找到了,是中断触发了两次
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 不是这个意思,本意就是闪3次的,问题找到了,是中断触发了两次
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 确实不难,忽略了按键消抖的问题
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 亮了6次灭了6次,所以才奇怪的,今天想了一上午才发现,原来是触发了两次中断
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 嗯嗯,太对了,就是这个原因,中断触发了两次
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

  • LZ觉得哪个人回答的好,可以把分评了
    • 发布于2014-12-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32 FOR循环怎么是设置循环次数的双倍