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

Arduino Nano 33 IoT连接NEO 6M GPS模块无NMEA输出问题求助

Arduino Nano 33 IoT 连接 NEO-6M GPS无NMEA输出故障排查点
  • 串口对象使用冲突:Arduino Nano 33 IoT 上的Serial对象是绑定到USB端口的虚拟串口,用于和电脑串口监视器通信;你接线用的引脚RX0/D0、TX0/D1对应的是外设硬件串口Serial1,如果你的代码中错误将GPS库绑定到Serial对象,会导致读取不到GPS数据,同时干扰串口输出。
  • 波特率不匹配:NEO-6M出厂默认波特率为9600,你需要确认代码中Serial1.begin()的参数为9600,同时Serial.begin()设置的串口监视器波特率和IDE串口监视器选择的波特率完全一致,否则会出现无输出或乱码的情况。
  • 模块未正常启动:观察NEO-6M模块上的PPS指示灯状态:
    • 上电后指示灯常亮/完全不亮:说明供电异常,检查3.3V、GND接线是否虚接,Nano 33 IoT的3.3V引脚供电能力可以覆盖NEO-6M的峰值功耗,不需要额外供电
    • 指示灯每3秒闪烁一次:说明模块正常启动但未搜到星,此时仍会输出NMEA报文,只是没有定位数据,不会出现完全无输出的情况
  • 模块配置被修改:二手NEO-6M可能被修改过默认配置,关闭了NMEA报文输出或修改了默认波特率,可以使用U-Center工具将模块恢复出厂设置后再测试。
  • 接线方向错误:确认接线没有接反:GPS模块的TX引脚需要连接到Arduino的RX引脚,GPS的RX引脚连接到Arduino的TX引脚,接反会无法通信。

最小测试代码

你可以上传以下代码测试通信是否正常:

void setup() {
  // 初始化串口监视器,波特率115200
  Serial.begin(115200);
  while (!Serial) {} // 等待串口监视器打开
  // 初始化GPS连接的Serial1,波特率9600(NEO-6M默认值)
  Serial1.begin(9600);
  Serial.println("GPS测试启动");
}

void loop() {
  // 把GPS发来的数据打印到串口监视器
  if (Serial1.available()) {
    Serial.write(Serial1.read());
  }
  // 可选:把串口监视器发来的配置指令传给GPS
  if (Serial.available()) {
    Serial1.write(Serial.read());
  }
}

上传完成后打开串口监视器,选择波特率115200,即可看到输出的NMEA报文。


内容的提问来源于stack exchange,提问作者fazril fazil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 08:15:04