首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libserial Open()在我的C++程序中冻结

Libserial Open()在我的C++程序中冻结
EN

Stack Overflow用户
提问于 2010-11-29 21:04:05
回答 2查看 1K关注 0票数 2

基本上,我有一个非常简单的C++程序,其中我试图打开一个串行端口(实际上是一个USB->RS232转换器,应该由libserial支持),但代码在Open()上冻结。没有错误,没有异常,什么都没有,它什么也不做。它似乎可以在除此特定端口之外的其他串行端口上工作。串行端口也可以与cutecom和其他终端一起工作(并且它不被任何其他程序保留)。我在打开端口之前和之后都尝试过配置,但这似乎无关紧要。我也看不到任何关于握手的东西,在libserial的(相当糟糕的)文档中,或者在头文件中,也许它在等待握手或其他什么,我不知道……Libserial0版本0.6.0和Ubuntu10.10。出什么问题了,或者我该如何尝试调试这个...?有没有其他建议的库/方法来配合C++使用串口?

代码语言:javascript
复制
#include <SerialStream.h>
#include <iostream>

int main() {

 LibSerial::SerialStream device_;

 device_.SetBaudRate(LibSerial::SerialStreamBuf::BAUD_9600);
 device_.SetCharSize(LibSerial::SerialStreamBuf::CHAR_SIZE_8);
 device_.SetNumOfStopBits(1);
 device_.SetParity(LibSerial::SerialStreamBuf::PARITY_NONE);
 device_.SetFlowControl(LibSerial::SerialStreamBuf::FLOW_CONTROL_NONE);

 device_.Open("/dev/ttyUSB1");

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-30 02:00:20

几年前,当我不得不编写一个调制解调器的控制接口,允许通过RS-232进行远程控制时,我研究了libserial。我最终使用了Boost的ASIO实现来利用串口。

不确定Boost.ASIO是否适用于您。但根据我的经验,我还没有把它挂在身上……

票数 1
EN

Stack Overflow用户

发布于 2011-10-12 05:28:39

我在使用USB串行转换器(pl2303)时也发现了这个问题。设置VTime似乎就解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4303995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档