You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Arduino对SIMCOM A7670的GNSS功能进行编程

SIMCOM A7670SA GNSS功能启用与编程指导

一、硬件检查先做足

  • 确认GNSS天线插对接口:A7670SA的GNSS和LTE天线接口是分开的,别插混,GNSS接口一般标GNSS_ANT
  • 把设备拿到室外开阔处测试,室内GNSS信号弱,定位慢甚至搜不到星
  • 模块供电要稳:A7670SA峰值电流大,别用Arduino板载5V供电,建议外接5V/2A以上电源

二、先用串口助手调试AT指令(排除代码问题)

拿USB-TTL模块连A7670SA的AT串口,发以下指令:

  • 测试通信:AT → 回OK说明串口通了
  • 查GNSS状态:AT+CGNSTST? → 回+CGNSTST: 0就是没启动
  • 启动GNSS:AT+CGNSPWR=1 → 回OK就启动成功(部分版本用AT+CGNSTST=1,两种都试试)
  • 等30-60秒,拿定位数据:AT+CGNSINF → 返回的字符串里有经纬度、时间这些关键信息,格式是+CGNSINF: <mode>,<time>,<lat>,<lon>,<alt>,<speed>,<course>,<fix>,<sat>,<hdop>,<vdop>,<pdop>,<reserved1>,<reserved2>,<reserved3>

三、Arduino代码示例

用软串口或硬串口都行,下面是极简实现:

#include <SoftwareSerial.h>

// 软串口引脚,根据实际接线改
SoftwareSerial simSerial(10, 11); // RX接模块TX,TX接模块RX

void setup() {
  Serial.begin(9600);
  simSerial.begin(115200); // 模块默认AT波特率大多是115200,不对就换9600/19200
  delay(1000);

  // 启动GNSS
  simSerial.println("AT+CGNSPWR=1");
  delay(200);
  readSimResponse();

  // 可选:设置只输出RMC格式定位数据,也可以设成GGA等
  simSerial.println("AT+CGNSSEQ=\"RMC\"");
  delay(200);
  readSimResponse();
}

void loop() {
  // 每5秒请求一次定位数据
  simSerial.println("AT+CGNSINF");
  delay(200);
  readSimResponse();
  delay(5000);
}

// 读取模块响应并打印到串口监视器
void readSimResponse() {
  while(simSerial.available()) {
    String resp = simSerial.readStringUntil('\n');
    Serial.println(resp);
  }
}

四、常见坑排查

  • 发AT+CGNSPWR=1没反应/报错:先重启模块,确认你的A7670SA版本带GNSS功能(你买了配套天线应该没问题)
  • AT+CGNSINF返回全是逗号:说明还没定位成功,继续在室外等,或者检查天线有没有插紧
  • AT指令没响应:换波特率试试,9600、19200、115200都试一遍

内容的提问来源于stack exchange,提问作者Khaleel Khaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:48:20