2013-02-10 147 views
0

我正在做一個項目,其中我從8051 MC的某些開關和按鈕上獲取數據。現在我必須串行傳輸這些端口引腳上的數據到PC。在PC端,我使用串口類在C#sharp .net應用程序中接收數據。現在的問題是我希望在C sharp應用程序中收到的數據是位串而不是Ascii的形式。將Ascii字符串轉換爲位流

有人可以指導我如何實現?

+0

您可以向我們表明接受數據,樣本輸入和期望輸出的代碼開始。 – 2013-02-10 14:30:03

+0

@Ilia事情是,在端口上顯然有1和0的一些組合。當我從端口接收到8位數據的這種組合並將其傳輸到PC時,我會得到一些隨機符號。相反,我希望它是完全相同的組合位串,即組合8位,就像它在8051的端口上一樣。 – 2013-02-11 00:56:12

+0

我用於從8051微控制器串行接收數據的代碼是: - private void serialPortRead_DataReceived(object sender,System.IO.Ports.SerialDataReceivedEventArgs e){try {Rxstring = serialPortRead.ReadExisting();/* Rxstring具有字符串數據類型*/this.Invoke(new EventHandler(DisplayText)); } catch(System.TimeoutException){}} private void DisplayText(object s,EventArgs e){ReadTextBox.AppendText(Rxstring);} } – 2013-02-11 01:37:07

回答

0

像這樣的東西?

byte b = 23; 
var str = Convert.ToString(b, 2).PadLeft(8,'0'); 
0

字符通常存儲在集合在C#雙字節的。因此,對於每個16位,將二進制的集合轉換爲char類型。

char c = (char)myBinary; 

編輯:這當然取決於您的項目分配給每個字符的位數。這可能是一個字節。如果是這樣,您需要查看下面的鏈接以瞭解字符結構。

編號:http://msdn.microsoft.com/en-us/library/vstudio/x9h8tsay.aspx