TTGO T-Beam V1.0 GPS未发送数据:编程错误或硬件故障?

TTGO T-Beam V1.0 GPS未发送数据:编程错误或硬件故障?,gps,esp32,Gps,Esp32,我有TTGOT-Beam V1.0。首先,我用Meshtastic做了实验,一切似乎都很好,包括GPS 后来我刷新了我的SondyGo固件(用来观察天气探测数据),它根本不使用GPS 现在我再次更改了固件,这次是LoRa APRS tracker()。虽然程序启动时会报告“GPS OK!”(我还没有检查它是如何发现的),但GPS从未给出解决方案 该问题与未为GPS供电的已知问题无关,因为该程序正确初始化了AXP192 PMU,我用电压表检查了Neo6M模块的Vcc引脚上是否有3.3伏电压。此外,

我有TTGOT-Beam V1.0。首先,我用Meshtastic做了实验,一切似乎都很好,包括GPS

后来我刷新了我的SondyGo固件(用来观察天气探测数据),它根本不使用GPS

现在我再次更改了固件,这次是LoRa APRS tracker()。虽然程序启动时会报告“GPS OK!”(我还没有检查它是如何发现的),但GPS从未给出解决方案

该问题与未为GPS供电的已知问题无关,因为该程序正确初始化了AXP192 PMU,我用电压表检查了Neo6M模块的Vcc引脚上是否有3.3伏电压。此外,当天线暴露一段时间后,近地天体附近的红色LED将以1秒的间隔开始闪烁,因此近地天体芯片似乎正在工作(但即使在这种情况下,该程序也会报告“零卫星”,可能是因为它根本没有从GPS接收到任何数据)

我在程序中的GPS读取功能中添加了一个2行“探测器”,希望能看到从GPS复制到USB串行端口的原始数据

以下是草图中的相关部分,我在草图中添加了一个“探测器”,以查看GPS的信息:

//用于GPS的引脚
#ifdef T_光束V1_0
静态常数int RXPin=12,TXPin=34;//34:Neo6M TxD,12:Neo6M RxD
#否则
静态常数int RXPin=15,TXPin=12;
#恩迪夫
...
硬核试验ss(1);//TTGO具有HW序列号
TinyGPSPlus gps;//TinyGPS++对象
...
静态常数32_t GPSBaud=9600//全球定位系统
...
无效设置()
{
...
序列号开始(115200);
...
ss.begin(GPSBaud,SERIAL_8N1,TXPin,RXPin);//启动GPS的HW序列
...
}
静态无效smartDelay(无符号长毫秒)
{
无符号长启动=毫秒();
字符c;
做
{
如果(跟踪器模式!=WX\U固定){
while(ss.available()){
c=ss.read();
编码(c);
Serial.write(c);//此处-->在串行监视器中从未见过任何内容
}
}
}而(毫秒()-开始<毫秒);
}
然而,似乎从未有任何数据来自连接到GPS模块的串行端口(引脚34和12)。至少草图应该将任何传入字符复制到USB串行端口,但那里没有显示任何内容

所以我在考虑可能的原因:

  • 我映射了错误的端口
  • 波特率错误(不太可能,因为ESP32至少会接收一些垃圾字节)
  • ESP32中的UART1已死亡
  • Neo6M中的UART已死亡
  • Neo6M被重新配置为不向UART发送任何数据
我怎样才能证实发生了什么?是否有可能以某种方式“工厂重置”Neo 6M芯片?
不幸的是,TTGO的官方文档几乎没有。我遇到了同样的问题,所以tk看看UART是否正常。我用Meshtastic和GPS数据重新编程,所有这些都正常工作。 依我看,我认为你最后提到的选择是正确的。 也在等待解决方案