내 학교 프로젝트의 경우 gps 모듈을 programm해야합니다. 이 모듈은 UART를 통해 ASCII 코드를 보내고 이미 큰 문자열 하나를 가지고 있습니다. 는 GPS 모듈은 매우 큰 메시지를 보내지 만, 난 단지 한 부분이 필요합니다시작 부분과 끝 부분이 C로 작성된 부분 문자열 만들기
이$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGLL,4841.9388,N,01600.3418,E,000016.015,V,N*48
$GPZDA,000016.015,22,08,1999,,*55
$GPGSV,1,1,01,28,-90,000,33*66
$PERDCR,11,0,0,0.00,0.00,0.00,0.00,0.0,0,0,0.0,0,0,255,0,F,999*43
$PERDCR,1,32540,0,817,16,0,52,0,91,0,0,0,33,0x00,*41
$GPRMC,000017.015,V,4841.9388,N,01600.3418,E,0.00,0.00,220899,,,N*76
**$GPGGA,000017.015,4841.9388,N,01600.3418,E,0,00,0.0,277.9,M,0.0,M,,*6E** <-this part
굵은 부분은 어느 곳이 패키지가 될 수 있습니다. 패키지를 저장했습니다
char data[507];
$ GPGGA - * 6E의 데이터는 어떻게 얻을 수 있습니까? 참고 : 데이터가 변경되고 GPGGA-Package의 위치가 변경됩니다. "$ GPGGA"와 GPGGA 메시지의 길이 (이 경우)는 변경되지 않는 유일한 두 매개 변수입니다. 70
코드를 강조 표시 할 수 없습니다. 그래서, 너는 무엇을 시도 했는가? 왜 작동하지 않는거야? 죄송 합니다만, 귀하의 질문에 "gimme teh codez"사이트가 아닙니다. – Olaf
'ptr = strstr (data, "$ GPGGA,");'를 사용하여''$ GPGGA '에 대한 포인터를 찾을 수는 있지만''char data [507];에 더 큰 버퍼를 할당하십시오. 아마 현재 크기의 두 배입니다. –
'strlen'을 사용하여 문자열의 길이를 확인하고'strstr'을 사용하여 문자열이 ** $ GPGGA **로 시작하는지 확인하십시오. –