同样的函数,放在while(1)循环外面时,函数中的语句不执行,而放在while(1)循环内就执行?

2019-08-23 14:01发布

主程序如下,当poweron_Init()放在while(1)里面时,函数语句正常执行,而把poweron_Init()放在while(1)里面时,函数的语句就不执行了,请问各位大神这是什么原因?int main()
{                  
        usart3_init();//′®¿ú33õê¼»ˉ
        usart1_init();
        
        while(1)
        {        
                poweron_Init();
         
        }        


调用的函数为:
void poweron_Init(void)                                                  


{
    u8 counter=0;
    Delay(10000);
    /*response RDY*/
    if(rx_counter==7)
    {
             //rx_counter=0;
       for(counter=0; counter<7; counter++)
       {
          if(receive_command[counter] != hardware_init_value1[counter])
          {
             break;
          }
       }

       if(counter>=7)
       {
          hwinitial_ok_f=1;
                            //rx_counter=0;
       }     
       else
       {
          hwinitial_ok_f=0;
                            //rx_counter=0;
       }
    }
}


void Delay(u32 nCount)
{
for(; nCount != 0 ; nCount--);
}
//·¢&#203;íò&#187;&#184;&#246;×&#214;·&#251;′&#174;
/*******************************************************************************
* Name  : Uart3_PutString
* Deion : print a string to the uart3
* Input : buf&#206;a·¢&#203;íêy&#190;Yμ&#196;μ&#216;&#214;· , len&#206;a·¢&#203;í×&#214;·&#251;μ&#196;&#184;&#246;êy
*******************************************************************************/
void Uart3_PutString(u8 *buf , u8 len)
{   u8 i;
    for(i=0;i<len;i++)
    {
        Uart3_PutChar(*buf++);
    }
}


//·¢&#203;íò&#187;&#184;&#246;×&#214;·&#251;
/*******************************************************************************
* Name  : Uart3_PutChar
* Deion : printf a char to the uart.
*******************************************************************************/
u8 Uart3_PutChar(u8 ch)
{
    /* Write a character to the USART */
    USART_SendData(USART3, (u8) ch);
    while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET)
   {

   }
   return ch;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。