1. 介紹
Qt對串口通信提供了專用類QSerialPort,須要在pro文件增長:QT += serialport,其繼承自QIODevicehtml
相關類還有QSerialPortInfo 提供當前設備串口信息app
2. QSerialPortInfo
QSerialPortInfo::availablePorts();函數
能夠獲取當前設備的全部串口信息,提供瞭如下操做函數,可得到對應的信息類型。ui
- QString description() const
- bool hasProductIdentifier() const
- bool hasVendorIdentifier() const
- bool isBusy() const
- bool isNull() const
- QString manufacturer() const
- QString portName() const
- quint16 productIdentifier() const
- QString serialNumber() const
- void swap(QSerialPortInfo &other)
- QString systemLocation() const
- quint16 vendorIdentifier() const
portName通常爲「COMX」;Description爲描述信息;serialNumber爲編號,此號通常不相同可用於串口設備識別。spa
3. QSerialPort
參考類幫助文檔htm
相關串口配置函數:繼承
- bool sendBreak(int duration = 0)
- bool setBaudRate(qint32 baudRate, Directions directions = AllDirections)
- bool setBreakEnabled(bool set = true)
- bool setDataBits(DataBits dataBits)
- bool setDataTerminalReady(bool set)
- bool setFlowControl(FlowControl flowControl)
- bool setParity(Parity parity)
- void setPort(const QSerialPortInfo &serialPortInfo)
- void setPortName(const QString &name)
- void setReadBufferSize(qint64 size)
- bool setRequestToSend(bool set)
- bool setStopBits(StopBits stopBits)
先配置完成後,調用open可開啓串口ip
阻塞數據讀寫:文檔
- virtual bool open(OpenMode mode)
- virtual bool waitForBytesWritten(int msecs = 30000)
- virtual bool waitForReadyRead(int msecs = 30000)
同時能夠利用QIODevice類的readyRead信號,connect之後可在收到信息後在槽中響應,利用get
- qint64 read(char *data, qint64 maxSize)
- QByteArray read(qint64 maxSize)
- QByteArray readAll()
讀取內容。
串口可能在發送一串字符時每個字符收到均有一次readyRead響應,此時須要自行判斷終止符。