i++实验求帮助,新手上路事故多

2019-07-20 01:16发布

按键达到次数互换,为什么永远都是i++,跑不到 j 计数下?新手上路求帮助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
辣个男人
1楼-- · 2019-07-20 02:49
int i=0;
  int j=0;
int main(void)
{
        u8 key;
        Stm32_Clock_Init(360,25,2,8);//éèÖÃê±Öó,180Mhz
        delay_init(180);                //3õê¼»ˉÑóê±oˉêy
        LED_Init();                                //3õê¼»ˉLEDê±Öó
        KEY_Init();                 //3õê¼»ˉóë°′¼üᬽóμÄó2¼t½ó¿ú
        //LED0=0;                                        //ÏèμãááoìμÆ  
        while(1)
        {
                key=KEY_Scan(0);         //μÃμ½¼üÖμ
          i=i+1;
                if(key)
                {                    
                        switch(key)       
         while(i<3)                               
                        {                                          
                                case KEY2_PRES:        //&#191;&#216;&#214;&#198;LED0·-×a
                                        LED0=!LED0;
                                        break;
                                case KEY1_PRES:        //&#191;&#216;&#214;&#198;LED1·-×a         
                                        LED1=!LED1;
                                        break;                               
                        }
                                                if (i>=3)       
                                                {j=0;
                                                }                                                       
                else{                       
              j=j+1;       
                                        switch(key)       
          while(j<3)                                               
                            {                                                
                                case KEY2_PRES:        //&#191;&#216;&#214;&#198;LED0·-×a
                                        LED1=!LED0;
                                        break;
                                case KEY1_PRES:        //&#191;&#216;&#214;&#198;LED1·-×a         
                                        LED0=!LED1;
                                         break;
                            }
                        if (j>=3)
                          {i=0;
                     }                
            }                       
                }else delay_ms(10);
        }
}
辣个男人
2楼-- · 2019-07-20 03:01
 精彩回答 2  元偷偷看……
s2333
3楼-- · 2019-07-20 06:07
switch()case之间不能放while()这种...建议看一下基础语句
zhouzhiqiao223
4楼-- · 2019-07-20 11:39
看图
zhouzhiqiao223
5楼-- · 2019-07-20 12:53
 精彩回答 2  元偷偷看……
辣个男人
6楼-- · 2019-07-20 18:37
zhouzhiqiao223 发表于 2019-6-12 16:24
看图

int i=0;
  int j=0;
int main(void)
{
        u8 key;
        Stm32_Clock_Init(360,25,2,8);//éè&#214;&#195;ê±&#214;ó,180Mhz
        delay_init(180);                //3&#245;ê&#188;&#187;ˉ&#209;óê±oˉêy
        LED_Init();                                //3&#245;ê&#188;&#187;ˉLEDê±&#214;ó
        KEY_Init();                 //3&#245;ê&#188;&#187;ˉó&#235;°′&#188;üá&#172;&#189;óμ&#196;ó2&#188;t&#189;ó&#191;ú
        //LED0=0;                                        //&#207;èμ&#227;ááoìμ&#198;  
        while(1)
        {
                key=KEY_Scan(0);         //μ&#195;μ&#189;&#188;ü&#214;μ
          i=i+1;
                if(key)
                {        while(i<3)                    
                        switch(key)                                      
                        {                                          
                                case KEY2_PRES:        //&#191;&#216;&#214;&#198;LED0·-×a
                                        LED0=!LED0;
                                        break;
                                case KEY1_PRES:        //&#191;&#216;&#214;&#198;LED1·-×a         
                                        LED1=!LED1;
                                        break;                               
                        }
                                                if (i>=3)       
                                                {j=0;
                                                }                                                       
                else{                       
              j=j+1;       
                               while(j<3)
                                        switch(key)                                                                 
                            {                                                
                                case KEY2_PRES:        //&#191;&#216;&#214;&#198;LED0·-×a
                                        LED1=!LED0;
                                        break;
                                case KEY1_PRES:        //&#191;&#216;&#214;&#198;LED1·-×a         
                                        LED0=!LED1;
                                         break;
                            }
                        if (j>=3)
                          {i=0;
                     }                
            }                       
                }else delay_ms(10);
        }
}
这样吗