2016-05-14 13 views
0

Ich arbeite mit atxmega avr, ich möchte ein Muster von Bytes an die MC senden und wenn es abgeschlossen ist und die MC Antwort das Muster zurück auf den PC gültig ist, wird das Muster gesendet ein Array von 8 Bytes, habe ich versucht, herauszufinden, das Problem, aber nicht erfolgreich :(, Ich weiß nicht, was ist das Problem mit meinem Code. zu wissen, dass die serielle Schnittstelle funktioniert gut. mein Code ist hier:serielle Schnittstelle senden empfangene Daten zurück zum PC

while (1) 
{ 

    if (sampling_flag==1) 
     { 
      sampling_flag=0; 
      tx_buf2[i] = usart_getchar(&USARTF0); 
      i++; 

       if (tx_buf2[0]== 0x01 && i==7) 
        { 
         for (int j = 0; j < 7; j++) 
         { 
         usart_putchar(&USARTF0, tx_buf2[i]); 
         } 
        } 
      if(i==7) 
      i=0; 
      /* 
     if (!fifo_is_empty(&rx_fifo)) 
      { 

        fifo_pull_uint8(&rx_fifo, &byteToSend); 
        usart_putchar(&USARTF0, received_byte); 
      } 
      */ 
     } 
}//end of while(1) 

Antwort

1

Wahrscheinlich müssen Sie wie "j" in usart_putchar verwenden unter

for (int j = 0; j < 7; j++) 
{ 
    usart_putchar(&USARTF0, tx_buf2[j]); 
} 

Ihr aktueller Code antwortet möglicherweise nur tx_buf2[7].

+0

oops, und danke @Kazumichi das ist richtig. –

Verwandte Themen