1+ sprintf(gmrc_buffer,
2+ "GPRMC,
3+ %02d%02d%02d, <---- hhmmss
4+ A,
5+ %s, <---- 25.04776
6+ N,
7+ %s, <---- 121.53185
8+ E,
9+ 022.4,
10+ 084.4,
11+ %02d%02d%02d, <---- ddmmyy
12+ ,
13+ A", <---- A XX
14+
15+ hh, mm, ss, "25.04776", "121.53185", day, month, year);
16+
17+ $GPRMC,hhmmss,A,25.04776,N,121.53185,E,022.4,084.4,ddmmyy,,A XX
18+
19+ void SendHex(uart_inst_t uart, uint8_t crc) {
20+ char high = (crc >> 4) & 0x0F;
21+ char low = crc & 0x0F;
22+ high = (high < 10) ? ('0' + high) : ('A' + high - 10);
23+ low = (low < 10) ? ('0' + low) : ('A' + low - 10);
24+ uart_putc(uart, high);
25+ uart_putc(uart, low);
26+ uart_puts(uart, "\n");
27+ }
28+
29+ 主函数:
30+ sprintf(gmrc_buffer, "GPRMC,%02d%02d%02d,A,%s,N,%s,E,022.4,084.4,%02d%02d%02d,,A", hh, mm, ss, "25.04776", "121.53185", day, month, year);
31+ uart_puts(uart, "$");
32+ uart_puts(uart, gmrc_buffer);
33+ uart_puts(uart, "");
34+ byte crc = 0;
35+ for (byte x = 0; x < strlen(gmrc_buffer); x++) {
36+ crc = crc ^ gmrc_buffer[x];
37+ }
38+ SendHex(uart, crc);
39+
40+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 32 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 30 0a
41+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 33 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 31 0a
42+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 34 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 36 0a
43+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 35 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 37 0a
44+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 36 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 34 0a
45+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 37 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 35 0a
46+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 38 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 41 0a
47+ 65 bytes: 24 47 50 52 4d 43 2c 30 30 30 30 31 39 2c 41 2c 32 35 2e 30 34 37 37 36 2c 4e 2c 31 32 31 2e 35 33 31 38 35 2c 45 2c 30 32 32 2e 34 2c 30 38 34 2e 34 2c 30 31 30 31 2d 33 30 2c 2c 41 2a 37 42 0a
0 commit comments