2016-04-11 62 views
5

私はarduino MEGAのSerial1にいくつかのバイトを送信しようとしています。私はこれをbyte[] writebuffer = { 1, 2, 3, 4 };に送っていますが、arduinoのSerialの出力は127 191 247 0です。c#とarduinoの間のシリアル通信

私はDB9を使用しています。私はGNDにGNDを、Rx1にTx、Tx1にRxを接続しています(DB9からarduinoへの接続)。

はここに私のC#のコードです:

SerialPort sepo = new SerialPort("COM6", 9600); 
sepo.Open(); 
byte[] writebuffer = { 1, 2, 3, 4 }; 
sepo.Write(writebuffer, 0, writebuffer.Length); 
sepo.Close(); 

そして、これはArduinoのコードです:

void setup() 
{ 
    Serial.begin(115200); 
    Serial1.begin(9600); 
} 
void loop() 
{ 
    if(Serial1.available()) 
    { 
    while(Serial1.available()) 
    { 
     Serial.print((byte)Serial1.read()); 
    } 
    Serial.println(); 
    Serial1.println("recibi datos"); 
    } 
} 
+1

コードはOK! ...ハードウェアの問題のように見えます。 – Fruchtzwerg

答えて

1

私はあなたが開く前に、シリアルポートを閉じて、それが開いているかいなかったかどうかをチェックすることをお勧めします。

また、ft232またはch340に基づくシリアルコンバータには、max232などのttl usartコンバータ、またはusbを使用する必要があります。これはarduinoは5Vのシリアルポートを持ち、デスクトップは12Vのポートを持っているためです。

1

arduinoとPCの間の電圧が異なるため、まっすぐなPCとArduinoのシリアル接続はできません。動作しません。私は今FTDIを使用しており、完全に動作しています。

関連する問題