GPS和北斗模块配置

1.NEO-M8Z配置

下载u-center(官网,要爬墙Home | u-blox

首先设置GNSS模式

后面框起来的部分不输入,也可以配置

配置为北斗模式

neo-m8z如果不滤调gps,他还会输出GP信息

输出到串口的配置信息为:(7B 9E 后的信息不加也能设置)

配置为gps模式 

B6 62后可以不写,也可以配置,如上,这个应该也可以整体写入,我没测试

波特率设置

 {0xB5, 0x62, 0x06, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD0, 0x08, 0x00,
  0x00, 0x00, 0xC2, 0x01, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7E}; 

 2.中科微ATGM332D

设置模式参考:《CASIC多模卫星接收协议_V20200106.pdf》(杭州中科微的官网有这个文档)

static const chr8_t gps_mode[] = "$PCAS04,1*18\r\n";
static const chr8_t bd_mode[] = "$PCAS04,2*1B\r\n";
static const chr8_t gpsbd_mode[] = "$PCAS04,3*1A\r\n";

static const chr8_t uart_b[] = "$PCAS01,5*19\r\n";  /* 设置波特率:115200 */

为了兼容识别两款芯片,通过查看是否输出GPTXT,来区别,是则为ATGM332D

我们的产品并没有保存配置,意味着每次启动的时候都会发送命令配置一次芯片 

默认情况下,芯片同时支持GPS和北斗信息输出

求余工具

中科微校验,使用的是字符串的值求余,为了方便配置,写了一个工具来计算:

(c和c++混一起的原因是因为刚开始用的是c中的scanf, 但是release的时候一直报错,我就索性用C++里面的cin作为输入了)

#include<stdio.h>
#include<string.h>
#include <iostream>

using namespace std;
int main()
{
	char str[100];
	printf("$PCAS04,2*1B计算单北斗模式,只需输入PCAS04,2\r\n");
	while (1)
	{
		printf("\r\n------------------------------------");
		printf("\r\n请输入需要计算异或的字符串:\r\n\r\n");
		cin >> str;
		printf("\r\n");
		char value = str[0];
		for (int i = 1; i < strlen(str); i++)
		{
			value = value ^ str[i];
		}
		printf("异或的结果: 0x%02x\r\n", value);
	}
	
	return 1;
}

3.RMC信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

入门->放弃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值