안녕하세요 저는 직렬 포트를 사용하여 장치에서 작동하는 응용 프로그램을 작성하고 있습니다. 나는 코드를 작성했으며 브레이크 포인트를 넣을 때 잘 작동하지만, 브레이크 포인트를 사용하지 않고 디버깅 할 때 예상되는 데이터는 부분적으로 부분적이다. 예를 들어 브레이크 포인트를 넣고 포트에서 읽을 때 올바른 데이터는 "ali"이지만 브레이크 포인트를 제거하면 데이터는 "a", "li"이됩니다. 나는이 시간 낭비이고 이것이 내가 설명 지점을 깨는의 효과를 설명 인코딩 한 원인 가정직렬 포트에서 읽기 및 쓰기 지연 지연
fname1 = Encoding.Default.GetBytes("write1" + dataRow[0].ToString());
comport.Write(fname1,0,fname1.Length);
lname1 = Encoding.Default.GetBytes("write4" + dataRow[1].ToString());
comport.Write(lname1, 0, lname1.Length);
c3 = Encoding.Default.GetBytes("read" +0x1);
comport.Write(c3,0,c3.Length);
comport.Read(fname1, 0, fname1.Length);
string s = Encoding.Default.GetString(fname1);
MessageBox.Show(s);
: 여기에 내 코드 조각 쓰기에 대한 코드와 포트에서 읽기입니다.
내 솔루션은 두 개의 연속적인 읽기 또는 쓰기 지연을 넣는 것입니다. 나 맞아 ? 그렇다면 어떻게 구현할 수 있습니까? 더 좋은 방법이 있습니까?
"읽기"를 수행하는 코드를 포함하십시오. –
버튼 클릭으로 위 코드의 두 번째 부분이 읽습니다. Read 명령을 수행하기 위해 "read"와 블럭 번호를 디바이스에 바이트로 보내야한다. – user2628363
아니, 나는 당신이 'SerialPort.Read' 메소드를 호출하는 코드 부분을 의미한다. 당신은'DataReceived' 이벤트 핸들러에서 그것을하고 있습니까? –