我用下面的如何從串口接收十六進制數據並將其顯示在C#中的文本框中?
byte[] hex=new byte[1000];
string RecievedData = myport.ReadExisting();
if (!(RecievedData == ""))
{
hex = Encoding.GetEncoding(28591).GetBytes(RecievedData);
string hexString = BitConverter.ToString(hex);
txtbox.text+=hexString;
}
,但問題是,這種代碼轉換沒有一個字符值到0x3F的所有字節。
它是WPF,Winforms還是Asp.net? –
它是Winforms。 –
0x3F =='?'。在二進制數據上使用ReadExisting()時,會發生這種情況,字節值> = 0x80沒有相應的ASCII字符,因此它們會產生問號。您必須使用Read()方法讀取二進制數據。 –