Saya sedang mengembangkan aplikasi yang berkomunikasi dengan sirkuit elektronik saya melalui Port 4. Saya dapat mengirim data dari PC ke sirkuit tanpa masalah; Saya kemudian mendapatkan data kembali dari sirkuit. Namun, ketika saya mencoba mengambil data dari sirkuit saya untuk kedua kalinya, saya menerima data yang salah dari sirkuit tersebut. Adakah petunjuk tentang cara mengatasi ini?
Ini adalah kode C#:
byte[] Sent_Byte = {1,2,3,4,5,6};
byte[] Received_Byte = new byte[10];
private void button_sendData_Click(object sender, EventArgs e)
{
// I send this data because the circuit is ready to get data
serialPort1.Write("G");
serialPort1.Write(Sent_Byte, 0, 6);
}
private void button_getData_Click(object sender, EventArgs e)
{
// I send this data because the circuit is ready to send data
serialPort1.Write("A");
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.Read(Received_Byte, 0, 10);
}
Ini kode Arduino:
char Control_OP=0;
char Received_Data[6];
byte Sent_Data[10];
void loop()
{
while(Serial.available())
{
Control_OP = Serial.read(); // determines whether receiving data or sending data
if(Control_OP=='G') // receiving data
{
Number=Serial.readBytes(Received_Data,6);
}
else if(Control_OP=='A') // sending data
{
Serial.write(Sent_Data,10);
}
}
}
A
dan lihat apakah ada respons. Ini adalah pemecahan masalah komunikasi serial dasar. - person Matt Burland   schedule 04.02.2014