728x90
#include<stdio.h>
int main()
{
char GPRMCBuf[] ={
// checksum calculation starts with the next byte (0x47)
0x47, 0x50, 0x52, 0x4D, 0x43, 0x2C, 0x31, 0x35, // GPRMC,15
0x30, 0x35, 0x32, 0x30, 0x2E, 0x30, 0x30, 0x30, 0x2C, // 0520.000,
0x41, 0x2C, 0x34, 0x31, 0x32, 0x31, 0x2E, 0x37, 0x39, // A,4121.79
0x37, 0x37, 0x2C, 0x4E, 0x2C, 0x30, 0x30, 0x32, 0x31, // 77,N,0021
0x30, 0x2E, 0x39, 0x36, 0x36, 0x37, 0x2C, 0x45, 0x2C, // 0.9667,E,
0x31, 0x2E, 0x35, 0x30, 0x2C, 0x35, 0x38, 0x2E, 0x32, // 1.50,58.2
0x39, 0x2C, 0x32, 0x33, 0x30, 0x37, 0x31, 0x35, 0x2C, // 9,230715,
0x2C, 0x2C, 0x41, // ,,A
// checksum calculation ends here
};
unsigned short chk=0;
int len=sizeof(GPRMCBuf);
for(int i=0; i<len; i++)
{
chk ^=GPRMCBuf[i];
}
return chk; 0x35 0x38 --> 0x58로 나옴
}
결과의 코드는
0x2A, // The '*' character, i.e. message/checksum delimiter
0x35, 0x38, // The checksum, '5' and '8', so the checksum is 0x58
로 표현해서 메세지를 보낼수 있다
728x90
'개발자 모드 > C언어' 카테고리의 다른 글
C언어 10진수로 받아서 2진수 배열에 넣기 (0) | 2021.04.04 |
---|---|
C언어 해양 [NMEA] AIS Checksum 계산 (0) | 2021.04.04 |
C언어 두 좌표간 GPS 거리 구하기 (0) | 2021.03.21 |
C언어 GPS 좌표간 방위각 구하기 (0) | 2021.03.21 |
C언어 게임 아빠는 대머리 ... (0) | 2021.03.16 |