17 QT里的uart编程

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.        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值