我在树莓派 3 上安装了 lineage os 14 我用 UART 端口连接了 GPS 模块,但是 GPS 的波特率为 9600,但 /dev/ttyS0 的波特率为 115200 我想更改 ttyS0 的波特率,以便读取GPS数据 我尝试了 stty 命令
stty -F /dev/ttyS0 9600
但是,当我使用此命令再次检查时,这不会改变波特率
stty -F /dev/ttyS0
速度值为115200。
我怎样才能改变/dev/ttyS0的波特率我还找到了一些使用串行命令的解决方案serial /dev/ttyS0 9600
但是它在adb shell上不存在。任何帮助将不胜感激
您需要修改
/boot/config.txt
文件并添加以下条目以启用串行线并指定波特率:
console=ttyAMA0,9600
这对我有用。
请注意,在涉及 uart 的情况下,Pi 3 和 4 与其他 Pi(0、1、2)之间存在硬件差异(参考文档)。
RPi 3 使用
UART0
作为其辅助/蓝牙 uart,并使用 miniUART 作为其主 uart。 主要/次要指定与 UART 的固定位置有关; primary 表示它固定在 GPIO 14 和 GPIO 15 上,secondary 表示它固定在 WiFi/BT 芯片旁边。
所以我怀疑OP连接到GPIO 14和15(即RPi 3上的
miniUART
)。虽然命令 (stty -F /dev/ttyS0 9600
) 确实设置了 miniUART
上的波特率,但此设置基于可变 VPU 时钟。 换句话说,使用miniUART
需要将RPi配置为使用固定的VPU核心时钟频率,可以使用/boot/config.txt
在enable_uart=1
中设置。 (另请注意,给定的配置设置适用于 bookworm
,与 bullseye
不同(有关详细信息,请参阅 /boot/overlays/README
)。)
是的 - 这很令人困惑!