0

私は 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)
4

1 に答える 1

1

おそらく、以下のように usart_putchar で「j」を使用する必要があります

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

現在のコードは のみ応答する場合がありtx_buf2[7]ます。

于 2016-05-14T11:10:39.640 に答える