使用非规范输入处理,我正在读取使用带有“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网站上列出)。
感谢您的帮助。
麦克
答案 0 :(得分:1)
您是否可以使用以下内容(使用问题中链接示例中的struct termios newtio;
)
cfsetispeed(&newtio, B57600);
cfsetospeed(&newtio, B57600);
或只是
cfsetspeed(&options, B57600);
来自termios
手册页,它表示传递给这些函数的speed_t
参数可以取值高达B230400。我还在12.04 Ubuntu上开发了串口读取应用程序,上面的功能非常适合我。