RS232 프로그래밍 문제로 내 머리가 찢어졌습니다.예기치 않은 RS232 값이 전송되었습니다.
직렬 포트에 쓰고있는 문자가있는 char [7] 버퍼가 있습니다. 직렬 포트 모니터 프로그램을 사용하여 포트에서 발생하는 입력 및 출력을 모니터링합니다.
이3f 00 01 00 0b 4a
그래서 헤더 캐릭터 중 하나입니다되는 :
I 포트에 보내고 버퍼 내가 모니터 프로그램에 도착하면
a5 00 01 00 0b 4a
모니터 프로그램이 볼 수 있음을 나타냅니다 포함 프로그램에서 빠져 나갈 때 잘못 모니터되거나 변경되었습니다.
저는이 문제를 어떻게 해결할 수 있는지 잘 모릅니다.
이것은 버퍼를 채우는 데 사용하는 코드입니다.
char[]cmdBuffer=createCommandBuffer(0, 4, 1);
cmdBuffer[4] = Convert.ToChar(what);
placeChecksums(cmdBuffer);
serialPort.Write(cmdBuffer, 0, cmdBuffer.Length);
나는 serialPort.Write
를 호출하기 전에 중단 점에서 cmdBuffer의 내용을 확인하고 그들은 정확합니다. 모니터 프로그램이 잘못되었다고 결론을 내릴 수는 있지만, 같은 BAUD 속도로 실행되는 다른 소프트웨어를 모니터링 할 때 모니터가 올바르게 모니터됩니다.
다른 누구나이 동일한 문제가 있었습니까?
존 - 감사합니다. char 구조체를 사용하고 char = '\ x00a5'를 사용하여 채 웁니다. 바이트로 모두 바꿉니다 ... thx. – Mark
이 트릭을 수행했습니다 .Ascii 인코딩 속성 101. 많이 감사하겠습니다. – Mark