exitStatus
변수를 평가하지 않았으므로 읽기 성공을 나타낼 수 있습니다.
또한 1 바이트 만 읽으려면 메모리를 malloc 할 필요가 없습니다. 포인터를 로컬 char 변수에 전달하면됩니다. 내가에있어 동안 내가 의심 때문에
는 그리고 메인의 형태는! = 0 수표! = '0'으로 변경 int main()
또는 int main(int argc, char** argv)
int main()
{
int exitStatus;
unsigned int bytesToRead = 1;
unsigned char buffer;
Serial *connection = new Serial("COM3");
if(connection->IsConnected()){
exitStatus=connection->ReadData(&buffer, 1);
if((exitStatus == <Insert the value for a correct read status>) && (buffer != '0'))
<statement I'm trying to hit>
}
return 0;
}
갱신 중 하나 거기 직렬 인터페이스에서 오는 '0'문자 (= 0x30)입니다.
아, 내 잘못입니다. 나는이 코드를 여러 번 보았는데, 나는 그 사실을 알아 채지 못했다. 하지만 그건 문제가 아닙니다. exitStatus를 읽은 바이트 수로 설정하여 항상 성공적인 읽기를보고합니다. – ZacAttack
@ ZacAttack 통신이 없다면 터미널 프로그램으로 확인할 수 있습니까? 또한 포트가 올바르게 구성되어 있습니다 (전송 속도, 스톱 비트, 패리티). 나는 당신의 코드에서 명백한 문제를 보지 못했다. – Rudi
Arduino 직렬 모니터를 사용하여 들어오는 것을 봅니다. 버튼을 누르지 않으면 '0'의 스트림입니다. 그런 다음 내려 갔을 때 '1'의 흐름입니다. 나는 당신의 수정을 추가했고, 그들은 그 장소를 확실히 청소했다! 하지만 디버거에서 여전히 이상한 결과를 얻고 있습니다. – ZacAttack