关于串口收发错误

2019-10-15 00:27发布

void USART1_IRQHandler(void)                                                                            //′®¿ú1ÖD¶Ï′|àíoˉêy
{
  unsigned int i;
  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)                                //¼ì2aêÇ·ñêǽóêÕÖD¶Ï
  {       
    /* Read one byte from the receive data register */
    RxBuffer[RxCounter++] = USART_ReceiveData(USART1);                                //½óêÕò»×Ö½úêy¾Y
    if(RxCounter == DataSizeOfReceiver)                                                                //èç1û½óêÕêy¾Yá¿μèóú×üêy¾Yá¿
    {                                          
          for(i=0; i< RxCounter; i++) TxBuffer[i]=RxBuffer[i];                         //&#189;&#171;&#189;óê&#213;μ&#189;μ&#196;êy&#190;Y×a′&#230;μ&#189;·¢&#203;íêy×é
          RxCounter=0;                                                                                                        //&#189;óê&#213;&#188;&#198;êy&#198;÷&#199;&#229;á&#227;
             USART_ITConfig(USART1, USART_IT_TXE, ENABLE);                                        //′ò&#191;a′&#174;&#191;ú1·¢&#203;í&#214;D&#182;&#207;£&#172;′ò&#191;aoó&#187;áá¢&#188;′&#214;′DD&#214;D&#182;&#207;·¢&#203;í2ù×÷          
    }

  }

  if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)                           //&#188;ì2aê&#199;·&#241;ê&#199;·¢&#203;í&#214;D&#182;&#207;
  {   
           /* Send one byte */
    USART_SendData(USART1, TxBuffer[TxCounter++]);                                   //·¢&#203;íò&#187;×&#214;&#189;úêy&#190;Y                                                                                                                                          
    if(TxCounter == DataSizeOfTransfer)                                                           //è&#231;1&#251;·¢&#203;íêy&#190;Yá&#191;μèóú×üêy&#190;Yá&#191;
    {                                                                                  
          USART_ITConfig(USART1, USART_IT_TXE, DISABLE);                           //1&#216;±&#213;′&#174;&#191;ú·¢&#203;í&#214;D&#182;&#207;£&#172;í£&#214;1·¢&#203;í
             GPIO_WriteBit(GPIOA, GPIO_Pin_1, (BitAction)(!GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1)));       
          TxCounter=0;                                                                                                   //·¢&#203;í&#188;&#198;êy&#198;÷&#199;&#229;á&#227;
    }   
  }       
}

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