시리얼 포트를 통해 MCU에서 라인을 읽습니다. 줄은 "OK"로 끝나는 14 자로 구성됩니다. 문자는 int로 변환 된 다음 처리됩니다.시리얼 읽기, 첫 번째 128 값만 고려하십시오
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
serialPort1.Write("d");//request line from mcu
Thread.Sleep(100);
string line = serialPort1.ReadLine();
int p1_low = line[0];
int p1_high = line[1]*256;
int p1 = p1_low + (p1_high);
label1.Text = "Input Sensor: " + p1_low;
p1_low가 p1_high보다 더 자주 변화 스틱 (63) 값이 될 때까지 : 값 (INT 변환) 값이 여기에 63으로 유지 (128)보다 큰 값을 128보다 커지면 문제는 코드이다 128보다 큽니다. 문제가 될 수있는 곳은 어디입니까?
3은 마법의 숫자입니다. '?'의 ASCII 코드입니다. 귀하의 MCU가 값이 127보다 큰 바이트를 보내고 있습니다. 잘못된 방법을 사용하는 것처럼 들리지만 ReadLine()은 텍스트를 읽는 데만 사용해야합니다. Read() 메서드를 사용하여 바이트를 읽습니다. 또는 바이트 대신 텍스트를 보내도록 MCU 코드를 수정하십시오. –