Rpi GPSD為何能通過USB到串行電纜而不是Rpi串行引腳TxD,RxD讀取GPS數據?


1

我一直在嘗試使用GPS模塊設置RPi0。

This is the GPS antenna I'm using

This is the GPS module I'm using to connect to the Pi

我已經在台式機(Windows 10)上嘗試了帶有USB的模塊,並且工作正常,我可以看到GPS信息是通過PuTTY進入的,而在RPi上是通過USB進行的,我可以看到/dev/ttyACM0和使用cgps -s

我從PuTTY的輸出中可以看到(GPS模塊本身上還有一個紅色LED,一旦獲取到信號便開始閃爍),它正在工作,並且我正在從GPS獲取正確的坐標

我遇到的問題是,當我使用串行引腳(as per this tutorial)而不是USB端口將GPS模塊連接到Pi時,我只會偶爾在終端(/dev/serial0)中看到GPS位置。相反,GPS的大部分輸出如下。

$GPTXT,01,01,01,NMEA unknown msg*58

我確實找到了一篇文章的鏈接,該文章說運行以下命令可能會有所幫助,因為Pi可能試圖將消息發送回GPS模塊,這實際上會使它感到困惑,很抱歉,我似乎無法再次找到該鏈接但希望該命令會有意義:

$ sudo stty -F /dev/ttyS0 -echo

這似乎沒有任何效果,但是我隨後拔下了Pi上的TX引腳,因此它無法向接收器發送任何東西,這似乎已經完成了我從鍵盤上看到的原始輸出的竅門模塊,我不再出現unknown msg錯誤,並且正在獲取GPS位置信息,但僅在sudo cat /dev/serial0上運行cgps -s時卻看不到任何信息

所以我的問題是串行連接是怎麼回事?所有這些都可以通過USB正常運行,但是通過串行端口,只有當TX引腳被拔出時(Pi上),我才能看到正確的輸出,而且我沒有從cgps -s獲得任何輸出/必須運行sudo才能看到/dev/serial0中的輸出。

1

cgps and gpsd are reading at 4800 bauds per default. Your gps is sending at 9600bauds. So you'll need to tell one or the other which speed you use. When you use a

sudo cat [...]

you set console to auto-baud to show GPS sentences. So first, force 9600 bauds on the serial with

sudo stty -F /dev/ttyAMA0 speed 9600

(see https://www.raspberrypi.org/documentation/configuration/uart.md for serial uart names convention)

then configure gpsd for same speed.