串口发送接收数据回电脑

serial port resend recived data back to pc

我正在使用 atxmega avr,我想向 MC 发送一个字节模式,当它完成并有效时,MC 将模式回复回 PC,发送的模式是一个 8 字节的数组,我试图找出问题所在但没有​​成功:(,我不知道我的代码有什么问题。 知道串行端口工作正常。 我的代码在这里:

    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)

可能你必须像下面那样在 usart_putchar 中使用 "j"

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

您当前的代码只能回复 tx_buf2[7]