2013-07-14 173 views
0

我試圖寫入數據到一個arduino,我發送70個6字節(所以420字節),我相信在9600波特率應該需要大約40millsec到發送正確?但它需要400毫秒來編寫,我不知道爲什麼或如何加快速度。C#SerialPort.Write需要很長時間才能寫入數據

用於發送的代碼很簡單,額外的代碼是確保它以6個字節集發送。

private void Send(List<Byte> Data) 
{ 
    if (Running) 
    { 
     if (_Port.IsOpen) 
     { 
      try 
      { 
       int Rem, Div = Math.DivRem(Data.Count, Tester.Length, out Rem); 
       for (int cnt = Rem; cnt < Tester.Length; cnt++) 
       { 
        Data.Add(255); 
       } 
       _Port.Write(Data.ToArray(), 0, Data.Count); 
      } 
      catch (InvalidOperationException) 
      { 
       _Port.Close(); 
      } 
      catch (IOException) 
      { 
      } 
     } 
    } 
} 

基本上我希望這種情況發生儘可能快,因爲我試圖儘可能實時更新硬件。 感謝您的任何幫助

回答

2

波特率是每秒比特率,而不是每秒字節數。

420字節是3360位,所以原始數據需要3360/9600 = 0.35秒才能發送。所以,400毫秒似乎是非常合理的開銷包括在內。

+0

夠公平的:P我想知道我就是這樣,thxs很多 – Tails270

相關問題