【发布时间】: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