• 12846阅读
  • 6回复

[提问]如何在Qt中进行多串口接收数据编程 [复制链接]

上一主题 下一主题
离线4589512
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-27
— 本帖被 XChinux 从 Qt 作品展 移动到本区(2013-12-27) —
关键词: 求助
大家好, 如何在QT中进行多个RS485口读数据,
离线lindabell

只看该作者 1楼 发表于: 2013-12-27
RS485不就是串口吗
多个串口就可以了
离线realfan

只看该作者 2楼 发表于: 2013-12-27
一个485口对应一个QSerialPort对象
最好用多线程方式读写
离线4589512

只看该作者 3楼 发表于: 2013-12-27

#include "serialThread.h"
#include <QDebug>

#include "ui_serial.h"

#include "serial.h"

#include <QMessageBox>



int sendcount1=1;


QString GetHex="";



SerialThread::SerialThread(QString portName,BaudRateType baud, DataBitsType databits, ParityType parity, StopBitsType stopbits, FlowType flow, long timeout)
{
    struct PortSettings ttySetting; // s3c2440--{BAUD115200,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};
    myCom = new Posix_QextSerialPort(portName,ttySetting,QextSerialBase::Polling);
    myCom->open(QIODevice::ReadWrite);    //以可读写方式打开串口
    myCom->setBaudRate(baud);
    myCom->setDataBits(databits);
    myCom->setParity(parity);
    myCom->setStopBits(stopbits);
    myCom->setFlowControl(flow);
    myCom->setTimeout(timeout);}
    //qDeb
离线4589512

只看该作者 4楼 发表于: 2013-12-27
如果直接建立多一个线程来创建多一个QSerialPort对象,进行操作
eg:SerialThread::SerialThread1(QString portName,BaudRateType baud, DataBitsType databits, ParityType parity, StopBitsType stopbits, FlowType flow, long timeout)
{  struct PortSettings ttySetting; // s3c2440--{BAUD115200,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};
    myCom1 = new Posix_QextSerialPort(portName,ttySetting,QextSerialBase::Polling);
    myCom1->open(QIODevice::ReadWrite);    //以可读写方式打开串口
    myCom1->setBaudRate(baud);
    myCom1->setDataBits(databits);
    myCom1->setParity(parity);
    myCom1->setStopBits(stopbits);
    myCom1->setFlowControl(flow);
    myCom1->setTimeout(timeout);} 就可以了吧

离线4589512

只看该作者 5楼 发表于: 2014-02-27
还是搞不定多串口接收数据编程,希望大家给点思路
离线kingstaffy

只看该作者 6楼 发表于: 2017-09-24
楼主有搞定没有?
快速回复
限100 字节
 
上一个 下一个