Closed TabloNi closed 2 years ago
문제점 : 문자열이 비교되지 않는 현상
가정 :
if(Serial.available())라는 조건문은 통과함
inString 에 “ABCD”라는 문자열이 잘 들어왔다고 가정함
해결 방안 :
21, 22번째 줄 tocharArray -> toCharArray
inString.toCharArray(ch1,inString.length())를 진행할 경우 입력 버퍼에 의해서 3칸만 들어가서 “ABC”가 들어가게됨. 따라서 inString.toCharArray(ch1,inString.length()+1)를 통해 원 문자열이 잘 들어가도록 해주기.
사용 코드 :
void setup(){ Serial.begin(9600); String inString = "ABCE"; String A = "ABCE"; Serial.println(inString. length()); Serial.println(inString); Serial.println(A.length()); Serial.println(A); Serial.println(" "); char ch1[10] = {0,}; char ch2[10] = {0,}; inString.toCharArray(ch1,inString.length()+1); A.toCharArray(ch2,A.length()+1); Serial.println(ch1); Serial.println(ch2); Serial.println(A.equals(inString)); if(A.equals(inString)){ Serial.println("Test success"); } } void loop(){ }
해당 코드는 문자열 통신을 통해 ABCD를 잘 받아와서 진행한 코드임 해당 코드를 이용해도 결과가 나오지 않을 경우 Serial.readStringUntil('\n'); 에서 받아오는 문자열 검사 필요
확인했습니다! 아두이노 상에서 테스트하진 않았지만 '\n' 과 관련한 이슈가 있음을 확인했고 상기 방식 또는 Slave 쪽에서 받을때, ch를 덜받는쪽으로 해결하고자 합니다.
넵 알겠습니다! 해당 이슈는 해결로 판단하고 닫도록 하겠습니다!
문제점 : 문자열이 비교되지 않는 현상
가정 :
if(Serial.available())라는 조건문은 통과함
inString 에 “ABCD”라는 문자열이 잘 들어왔다고 가정함
해결 방안 :
21, 22번째 줄 tocharArray -> toCharArray
inString.toCharArray(ch1,inString.length())를 진행할 경우 입력 버퍼에 의해서 3칸만 들어가서 “ABC”가 들어가게됨. 따라서 inString.toCharArray(ch1,inString.length()+1)를 통해 원 문자열이 잘 들어가도록 해주기.
사용 코드 :