【问题标题】:raspberry pi uart baud rate locked at 9600树莓派 uart 波特率锁定在 9600
【发布时间】:2014-09-04 08:28:48
【问题描述】:

我一直在使用带有 USB 到 rs232 转换器的树莓派,但现在我必须使用树莓派的 UART 引脚,但我遇到了一个愚蠢的问题。

我在 C (http://en.wikibooks.org/wiki/Serial_Programming/termios) 中使用 termios.h 库,它与转换器配合得很好,但是当我使用 UART 引脚时,我将波特率设置为

cfsetospeed(&tio,B115200);            // 115200 baud
cfsetispeed(&tio,B115200);            // 115200 baud

波特率仍可在 9600 下工作。还有其他设置与 termios 库有关吗?如果不是,我应该怎么做才能改变波特率?

我也尝试过波特率 4800,当我使用 UART 时它仍然适用于 9600,但使用 USB 到 rs232 转换器时没有问题。

我正在使用图书馆

https://github.com/irukeru/TermiosSerialCom

我已经修改,其他设备没有问题。

【问题讨论】:

  • 你看过类似问题的答案吗? - stackoverflow.com/questions/4968529/… 似乎将波特率设置为更高速率的能力取决于硬件/系统。
  • 您正在为正确的设备设置属性?请说明如何获取和设置属性,以及如何打开设备。
  • 你好像没有检查cfsetospeed/cfsetispeed返回的状态?
  • @PaulR 你是对的。我马上检查。但正如我之前所说,我只有 UART 引脚才有这个问题。我的 C 代码中没有 9600。
  • 您确定您有权更改波特率吗?尝试以 root 用户身份运行程序以确保。

标签: c++ c raspberry-pi raspbian termios


【解决方案1】:

在此线程中看不到对 OP 的答案,因此,由于我花了很多时间寻找它并且为了公众知识,以下是如何更改 Raspberry Pi 上的默认 UART 波特率: 只需编辑文件/boot/config.txt 以添加以下行:

init_uart_baud=115200

您需要 root 权限才能执行此操作,所以不要忘记以 sudo su 开头,然后是 nano /boot/config.txt 或只是 sudo nano /boot/config.txt 并在末尾添加特定行。 然后重启 (sudo reboot)。

更多/boot/config.txt配置参数,查看以下link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    相关资源
    最近更新 更多