0
我正試圖從我的電腦與我的arduino進行通信。我在循環中發送1,0,0,0,並且arduino將收到的數據發送回去。然而,而不是讓1,0,0,0回來了,這是我得到:C#與arduino的串行通信
1000
1000
1000
1000
1000
1000
1000
0011
0000
0010
0100
1001
0000
0011
0000
正如你所看到的,它工作在開始,但開始幾條短信後變得怪異。 而不是發送3 0它發送5.爲什麼?
這裏是我的代碼:
C#應用程序:
class Program
{
SerialPort p;
static void Main(string[] args)
{
Program p = new Program();
p.initialize();
}
private void initialize()
{
p = new SerialPort("COM3", 115200);
p.Open();
byte[] data = { 1, 0, 0, 0 };
Thread t = new Thread(reading);
t.Start();
while(true)
{
p.Write(data, 0, data.Count());
}
Console.ReadLine();
}
private void reading()
{
while (true)
{
Console.WriteLine(p.ReadLine());
}
}
}
的Arduino:
void setup()
{
Serial.begin(115200);
delay(5000);
Serial.println("Program started....");
}
void loop()
{
for (int i = 0;i<4;i++)
{
Serial.print(Serial.read());
}
Serial.println();
delay(500);
}
讀取和寫入線程似乎不會以相同的頻率觸發並且不同步。 – Dave
我不這麼認爲,讀寫線程是完全獨立的。此外,在Arduino上的值也是錯誤的 – user2422196
我想你只是超載你的外部硬件。您的串行端口允許發送速度爲1000,甚至不使用任何握手。這對於arduino板來說可能只是很多。 – PMF