17 QT里的uart编程

来源:互联网 发布:广西网络广播电视台 tv 编辑:程序博客网 时间:2024/05/24 07:33

uart的介绍请参考http://blog.csdn.net/jklinux/article/details/72124110

我们需要配置波特率,数据位,校验位,停止位, 硬件流控.
在QT里已封装成一个名为QSerialPort的类, 还有一个QSerialPortInfo类.

qmake: QT += serialport

用法:

    QSerialPortInfo 类用于查看当前系统有哪些可用的uart接口,及可支持的波特率        QList<QSerialPortInfo> availablePorts()        QList<qint32> standardBaudRates()    代码:            QList<QSerialPortInfo> list;            list = QSerialPortInfo::availablePorts();            for (int i = 0; i < list.size(); i++)            {            qDebug() << list.at(i).portName() ;            qDebug() << list.at(i).description();            qDebug() << "#########";            }
    编译执行后的输出:        "ttyUSB0"        "USB-Serial Controller"        #########        "ttyS0"        ""        #########    即我的系统里有usb转uart的设备("/dev/ttyUSB0"),也有一个pc上本身的uart设备("/dev/ttyS0");

//////////////////////

QSerialPort类用于操作uart设备.
    1  创建对象        QSerialPort *port = new QSerialPort("/dev/ttyS0");    2  配置uart的波特率,数据位,校验位,停止位, 硬件流件            port->setBaudRate(QSerialPort::Baud115200);            port->setDataBits(QSerialPort::Data8);            port->setParity(QSerialPort::NoParity);            port->setStopBits(QSerialPort::OneStop);            port->setFlowControl(QSerialPort::NoFlowControl);            if (!port->open(QIODevice::ReadWrite))            qDebug() << "serial open failed";    3 uart设备打开后,就可以调用read, write收发数据. 当有数据需接收时会有信号readyRead.        
原创粉丝点击