3

使用非规范输入处理,我正在使用带有“DB9-to-USB”电缆的 Xbee 接口 XBIB-R-Dev 读取发送到 Xbee S2B Pro (ZB) 的串行数据。我正在使用来自http://tldp.org/HOWTO/Serial-Programming-HOWTO/x115.html的一些示例代码。我正在做的项目是严格的 C 代码而不是 C++。

在运行 Ubuntu Linux 12.04 LTS(32 位 - 最新更新)的笔记本电脑上阅读有关 termios.h 的信息时,我发现只有最高可用波特率只有 38400 BAUD(B38400 常数)。简单地将 B38400 的“#define BAUDRATE”换成更高波特率的 B57600 或更高将不起作用,因为它没有在头文件中定义。我会得到一个错误,说 B57600 没有定义。

我的问题是有没有更好的方法或方法来解决这个问题(使用 termios),所以我可以以更快的速度读取数据,因为 Xbee S2B Pro 能够推动高达 1 Mbps 的串行数据速率(digi 上列出的规格.com 网站)。

谢谢您的帮助。

麦克风

4

1 回答 1

1

您能否不使用以下内容(使用struct termios newtio;问题中链接中的示例)

 cfsetispeed(&newtio, B57600);
 cfsetospeed(&newtio, B57600);

要不就

  cfsetspeed(&options, B57600);

termios手册页中可以看出,speed_t传递给这些函数的参数可以采用高达 B230400 的值。我还在 12.04 Ubuntu 上开发了串口读取应用程序,上面的功能对我来说效果很好。

于 2013-12-26T22:23:27.287 回答