我試圖在微控制器和c#windows應用程序之間實現串行通信。串行消息分離
我已經在微機控制器方向的計算機上正常工作。但是我很難確定如何在另一個方向上實現通信。
我的郵件是由4個字節
- B0 - 地址/發送
- B1的值的名稱 - 高字節
- B2 - 低字節
- B3 - 校驗=加法的字節0-2
爲了確保收到完整的消息,我讓微控制器放棄當前的消息如果字節之間的時間長於20ms,則表示工作正常,並且可以容忍可能導致同步丟失的通信故障。
我不知道如何在c#應用程序中執行此延遲,因爲我知道您對時序的精確控制較少。
我已經看到其他的ASCII協議發送一個開始和停止字符,但不知道如何在發送二進制數據時實現這一點,其中我的值可以在字節中取任何可能的值,並且可能碰巧是無論開始還是停止字符是。
由於資源有限,我需要保持微控制器的基礎,而控制器的主要任務需要非常精確(sub us範圍),將ascii轉換爲十進制。
有沒有人建議我應該如何從微處理器或計算機端實現這一點。
編輯
我看過一些其他的問題就在這裏,但他們都似乎是指更大的基於ASCII消息。
對於它的價值,我所使用的協議大多具有指定的開始/結束消息標記,字節值2和3,然後使用擒縱算法來表示實際數據值3(結束(有時也稱爲DLE編碼) – 2013-03-14 06:43:41