2013-02-10 13 views
0

나는 8051 MC의 핀에있는 일부 스위치와 푸시 버튼에서 데이터를 가져 오는 프로젝트를 수행하고 있습니다. 이제 직렬 포트 데이터를 PC로 전송해야합니다. PC 끝에서 나는 직렬 포트 클래스를 사용하여 C#의 날카로운 .net 응용 프로그램에서 데이터를 받고 있습니다. 이제 문제는 C 날카로운 응용 프로그램에서받은 데이터가 Ascii 대신 비트 문자열 형태가되도록하려는 것입니다.Ascii 문자열을 비트 스트림으로 변환

어떻게 달성 할 수 있습니까?

+0

당신이 우리에게 데이터, 샘플 입력 및 예상 출력을 허용하는 코드를 보여 시작할 수 있습니다. –

+0

@Ilia 문제는 분명히 포트에 1과 0의 조합이 있다는 것입니다. 포트에서 8 비트 데이터의 조합을 가져 와서 PC로 전송할 때 임의의 기호가 표시됩니다. 대신 나는 그것이 정확히 같은 조합 비트 문자열, 즉 조합 8 비트를 8051 포트에 있기를 원합니다. –

+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); } –

답변

0

이와 비슷한?

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

문자는 일반적으로 C#의 2 바이트 세트로 저장됩니다. 따라서 각 16 비트에 대해 이진 세트를 char 유형으로 캐스트하십시오.

char c = (char)myBinary; 

편집 : 물론 프로젝트가 각 문자에 할당하는 비트 수에 따라 다릅니다. 단일 바이트 일 가능성이 높습니다. 이 경우 문자 구조에 대한 아래 링크를 살펴 봐야합니다.

참조 : http://msdn.microsoft.com/en-us/library/vstudio/x9h8tsay.aspx