NXP MCU 技术论坛
直播中

ejlwj

9年用户 979经验值
擅长:处理器/DSP
私信 关注
[问答]

如何在gpsd文件中将GNSS端口的波特率设置为38400?

我只是想在 gpsd 文件中将我的 GNSS 端口的波特率设置为 38400,如果有人知道,请帮助我。
以下是 gpsd 文件内容的当前内容
start_daeon=“真”
gpsd_options=“”
设备=“/dev/ttylp3”
usbauto=“真”
gpsd_socket=“/var/run/gpsd.socket”

回帖(1)

李波

2025-3-31 18:17:59

按照以下步骤在gpsd配置文件中设置GNSS端口的波特率为38400:


1. 编辑gpsd配置文件


打开配置文件(通常位于 /etc/default/gpsd/etc/sysconfig/gpsd),修改以下参数:


# 将原有的 gpsd_options 改为:
gpsd_options="-b 38400"

# 确保设备路径正确(根据你的实际设备名)
DEVICES="/dev/ttylp3"

# 检查其他参数是否正确(如启动选项)
start_daemon="true"    # 注意用英文"true"而非中文“真”

2. 验证串口配置


方法一:使用 stty 手动设置波特率(临时生效)


sudo stty -F /dev/ttylp3 38400

方法二:通过udev规则永久设置(推荐)
创建文件 /etc/udev/rules.d/85-gnss-port.rules,内容:


ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="你的设备VID", ATTRS{idProduct}=="你的设备PID", SYMLINK+="gnss_port", RUN+="/bin/stty -F /dev/%k 38400"

替换idVendoridProduct为实际值(通过 lsusb 查看)。


3. 重启服务使配置生效


sudo systemctl restart gpsd
# 或传统init方式
sudo service gpsd restart

4. 验证配置是否成功


# 查看gpsd是否以38400运行
ps aux | grep gpsd | grep 38400

# 检查串口当前波特率
sudo stty -F /dev/ttylp3 | grep speed

注意事项:



  • 语法检查:确保配置文件中使用英文引号和等号(如 start_daemon="true")。

  • 设备权限:确认用户(如gpsd)有权限访问/dev/ttylp3

  • 硬件兼容性:确认你的GNSS模块确实支持38400波特率(常见于UBX模块,需手册确认)。


如果仍有问题,可尝试停止gpsd后直接测试串口:


sudo systemctl stop gpsd
sudo cat /dev/ttylp3  # 应有乱码数据流(需波特率匹配)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分