chenran0001 发表于 2015-7-21 14:07:26

ESP8266与STM32通讯,串口通讯出现数据丢失。

小弟初学STM32不久,做的是wifi模块与STM32的通讯与数据处理,现在我有组数据,数据的HEX码如下:01 03 05 00 00 00 00 7F 7A 00 00 2C E5由于STM32函数的原因,串口只能打印:01 03 05 但我想调用数据7F 7A 应该如何修改这些函数或者有什么其他方法呢?谢谢大神指点:'(
STM32接收数据代码:
char * ESP8266_ReceiveString ( FunctionalState enumEnUnvarnishTx )
{
      char * pRecStr = 0
      strEsp8266_Fram_Record .InfBit .FramLength = 0;
      strEsp8266_Fram_Record .InfBit .FramFinishFlag = 0;
      while ( ! strEsp8266_Fram_Record .InfBit .FramFinishFlag );
      strEsp8266_Fram_Record .Data_RX_BUF [ strEsp8266_Fram_Record .InfBit .FramLength ] = '\0';
      if ( enumEnUnvarnishTx )
      {
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, ">" ) )
                        pRecStr = strEsp8266_Fram_Record .Data_RX_BUF;

      }
      else
      {
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+IPD" ) )
                        pRecStr = strEsp8266_Fram_Record .Data_RX_BUF;
      }
      return pRecStr;
}STM32串口打印代码:void USART2_printf( USART_TypeDef* USARTx, char *Data, ... )
{
      int n;
      const char *s;
int d;   
char buf;
      int i;
      
va_list ap;
va_start(ap, Data);
      
      n=sizeof(Data);

      for (i=0;i<n;i++)
      {                                                         
                if ( *Data == 0x5c )//'\'
                {                                                                        
                        switch ( *++Data )
                        {
                              case 'r':
                                        USART_SendData(USARTx, 0x0d);
                                        Data ++;
                                  i++;
                                        continue;

                              case 'n':
                                        USART_SendData(USARTx, 0x0a);      
                                        Data ++;
                                  i++;
                                        continue;
                              
                              default:
                                        Data ++;
                                  i++;
                                  continue;
                        }                        
                }
                else if ( *Data == '%')
                {                                                                        //
                        switch ( *++Data )
                        {                              
                              case 's':                                                                                 
                                        s = va_arg(ap, const char *);
          for ( ; *s; s++)
                                        {
                                                USART_SendData(USARTx,*s);
                                                while( USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET );
          }
                                        Data++;
                                        i++;
          continue;

       case 'd':                                                                              
          d = va_arg(ap, int);
          itoa(d, buf, 10);
          for (s = buf; *s; s++)
                                        {
                                                USART_SendData(USARTx,*s);
                                                while( USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET );
          }
                                        Data++;
                                        i++;
          continue;
                                 default:
                                                Data++;
                                    i++;
                                    continue;
                        }               
                }/*end of else if */
               USART_SendData(USARTx, *Data++);
                while( USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET );
      }
}

stary666 发表于 2015-7-21 17:45:30

看看,,,,,,,,,

chenran0001 发表于 2015-7-21 18:03:58

自己帮顶,求大神解救{:3_59:}
页: [1]
查看完整版本: ESP8266与STM32通讯,串口通讯出现数据丢失。