下位機將24位資料,通過串口,每次8位,分成高8位,中8位,低8位 共3次,發給PC,每次收到的資料類似于 "0E 2F 68 ",串口收到后怎么還原成單個十進制資料?
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
byte[] data = new byte[serialPort1.BytesToRead]; //定義緩沖區,因為串口事件觸發時有可能收到不止一個位元組
serialPort1.Read(data, 0, data.Length);
Form1_Paint(data);
}
uj5u.com熱心網友回復:
BitConvertuj5u.com熱心網友回復:
協議格式怎么定義的?uj5u.com熱心網友回復:
就是做一個協議分析的軟體,要詳細分析你的協議,找規律,如你的協議上是否說明了,報文一幀是否有幀頭,結束字符等,這些先要弄明白。uj5u.com熱心網友回復:
沒有設定通訊協議,就是單純的三個資料一起發上來,然后需要把第一個資料*65536 +第二個資料*256+第三個資料 然后把值存到另外一個陣列里。uj5u.com熱心網友回復:
資料的決議都是按照協議來的,比如你說的"第一個資料*65536 +第二個資料*256+第三個資料 然后把值存到另外一個陣列" 這個就是一個協議uj5u.com熱心網友回復:
你用個byte[4]的陣列接收下然后用bitconvert.toint32(byte[])就可以轉換成int型別的資料了轉載請註明出處,本文鏈接:https://www.uj5u.com/net/38121.html
標籤:C#
