• 6017阅读
  • 4回复

有关qextserialport的调用问题(串口无法打开) [复制链接]

上一主题 下一主题
离线xin360
 

只看楼主 倒序阅读 楼主  发表于: 2007-06-05
有关qextserialport的调用问题(串口无法打开)
— 本帖被 XChinux 执行加亮操作(2007-08-17) —
现用qextserialport的0.9版,qt:3.3.4版,在qt designer下编写,把qextserialport的类都放入了我要编写的工程中,现在想实现的功能是按某个按钮能够打开串口,并能读写串口数据,下面是我的代码:
open()
{  Posix_QextSerialPort * fd = new Posix_QextSerialPort("/dev/ttyS0");
    fd->setBaudRate(BAUD115200); //com1,115200,n,8,1
    fd->setFlowControl(FLOW_OFF);
    fd->setParity(PAR_NONE);
    fd->setDataBits(DATA_8 );
    fd->setStopBits(STOP_1);
    clippingsListBox->insertItem("N,8,1",0);
    if (fd->open())
    {
    clippingsListBox->insertItem("opened",0);
        fd->putch('a');
    fd->getch();
    fd->writeBlock("abc",3);
    fd->readBlock(buff,512);
        fd->flush();
        fd->close();
  }
}
现在的问题运行的结果不显示if语句中的"opened",是不是说明串口未打开呢,奇怪的是把串口改成"/dev/tty"
离线xin360

只看该作者 1楼 发表于: 2007-06-05
补充:  当改成"/dev/tty"时却能显示"opened""
这是怎么回事呢?
请大侠们指点一下
离线evanishbreak

只看该作者 2楼 发表于: 2007-08-15
Posix_QextSerialPort * fd = new Posix_QextSerialPort("/dev/ttyS0");

這個地方的後面要不要改成dev/ttyS1試試看
我改成這樣就可以了
离线圆融一笑
只看该作者 3楼 发表于: 2007-08-15
看看ttyS0存在不存在
这些是端口的文件啊
ttyS0是端口1
离线huzhiwen28

只看该作者 4楼 发表于: 2008-08-22
看看是不是权限的问题,打开串口设备最好是root用户
http://blog.sina.com.cn/tonyhuzhiwen
https://github.com/huzhiwen28/
专注于工业嵌入设备开发
快速回复
限100 字节
 
上一个 下一个