Pi 3 + 微堆栈 GPS 通信

Pi 3 + Microstack GPS communication

我买了一个 Raspberry Pi 3 Model B,一个 microstack 底板和一个 microstack GPS。

我按照官方文档中的说明进行操作,但无法连接到 GPS。

基本上,GPS 指示灯会闪烁,这意味着它已找到 gps 修复,但我看不到来自 PI 的任何数据。

例如,如果我尝试

cat /dev/ttyAMA0

我总是一无所获。我已经使用 raspi-config 禁用内核串行并启用 i2c 和 spi。

如果我试试

stty -F /dev/ttyAMA0 ispeed 4800 && cat </dev/ttyAMA0"

我收到一个错误。

请问大家有什么建议吗?

或者这些模块可能与 Pi 3 不兼容?

非常感谢!

很难说什么已经完成,什么没有完成。 'official' documentation from Microstack 提供了两种设置串口的方法。然后它继续

Automatically Starting gpsd To automatically start the gps service when the Raspberry Pi® boots, re­configure the GPS daemon by typing into a terminal
sudo dpkg-­reconfigure gpsd

● Choose <yes> when asked if you want to start gpsd automatically.
● Choose <no> when asked “should gpsd handle attached USB GPS receivers automatically” .
● When asked which “Device the GPS receiver is attached to” , enter /dev/ttyAMA0 .
● Accept the defaults for other options.

如果您已经按照说明配置了串行端口 并且 将 gpsd 配置为自动启动并接收您刚刚设置的设备,...那么,由于 gpsd 是处理设备(对吗?),设备会很忙,命令 cat /dev/ttyAMA0 应该 return cat: /dev/ttyAMA0: Device or resource busy...但是,它没有.

串口未按照说明配置,或者 gpsd 未运行 正在拾取设备,或两者都没有。

目标不是 cat 您的 gps 数据,但 cat 不是 returning 一个 错误 表明有问题。

通常,这只是一个拼写错误。但这可能是由于跳过了过程中的一个步骤,或者混合了来自各种来源的指令,以至于左手不知道右手做了什么。

尝试: sudo killall gpsd 如果它 returns gpsd: no process found 回答了一个问题。

如果 return 没有错误,请跟进 cat /dev/ttyAMA0。如果return没什么,你应该看的方向是你的串口配置。

如果 sudo dpkg-reconfigure gpsd 不允许您重新配置(我以为只有我),您可以使用您喜欢的编辑器修改 gpsd 的配置,例如sudo nano /etc/default/gpsd 并输入如下内容:

# Default settings for the gpsd init script and the hotplug wrapper.

# Start the gpsd daemon automatically at boot time
START_DAEMON="true"

# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="false"

# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyAMA0"

# Other options you want to pass to gpsd
GPSD_OPTIONS="-n -G"

您可能会发现 -n 和 -G 很有用。保存并重启。

我终于找到了解决办法:

Pi 3使用串口的步骤比较多,需要关闭BT。

编辑配置文件:

sudo nano /boot/config.txt

在底部添加:

dtoverlay=pi3-disable-bt-overlay

然后运行这个:

sudo systemctl disable hciuart

这篇文章对我很有用

http://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3/#comment-67160

我建议你阅读它

现在在 RPI3 上串口

蓝牙使用ttyAMA0 ttySO 指的是 GPIO Alias Serial0 是指 RPI2 和 RPI3 上的 GPIO。 所以:

用最新版本重新安装 Jessie 以确保一切正常

一如既往

$ sudo apt-get update 
$ sudo apt-get upgrade

$ sudo  raspi-config

转到高级选项:您是否希望登录 shell 可以通过串行访问?响应 "yes"(与微堆栈数据表中的不同)

$ sudo apt-­get install python3-­microstacknode

安装 gpsd 标准工具

$ sudo apt­-get install gpsd gpsd-­clients python­-gps

通过

编辑 GPSD
$ sudo nano /etc/default/gpsd

并输入选项:

START_DAEMON="true"
USBAUTO="false"
DEVICES="/dev/serial0"
GPSD_OPTIONS="-n -G"

同样

$ sudo nano /boot/cmdline.txt

移除

console=serial0,115200 并保存

$ sudo nano /boot/config.txt

最后一定要有

enable_uart=1

通过

禁用控制台
$ sudo systemctl stop serial-getty@ttyS0.service
$ sudo systemctl disable serial-getty@ttyS0.service

我也做了$ sudo chmod 775 ../../dev/ttySO(不知道有没有必要)

显然是重启

gps 的奇迹

cgps -s

注意:您必须修复 GPS(红色 LED 闪烁)

jpherrenknecht