QSerialPort-Qt串口通信

版權聲明:若無來源註明, Techie亮博客文章均爲原創。 轉載請以連接形式標明本文標題和地址:
本文標題:QSerialPort-Qt串口通信     本文地址: http://techieliang.com/2017/12/534/

1. 介紹

Qt對串口通信提供了專用類QSerialPort,須要在pro文件增長:QT += serialport,其繼承自QIODevicehtml

相關類還有QSerialPortInfo 提供當前設備串口信息app

2. QSerialPortInfo

QSerialPortInfo::availablePorts();函數

能夠獲取當前設備的全部串口信息,提供瞭如下操做函數,可得到對應的信息類型。ui

  1. QString description() const
  2. bool hasProductIdentifier() const
  3. bool hasVendorIdentifier() const
  4. bool isBusy() const
  5. bool isNull() const
  6. QString manufacturer() const
  7. QString portName() const
  8. quint16 productIdentifier() const
  9. QString serialNumber() const
  10. void swap(QSerialPortInfo &other)
  11. QString systemLocation() const
  12. quint16 vendorIdentifier() const

portName通常爲「COMX」;Description爲描述信息;serialNumber爲編號,此號通常不相同可用於串口設備識別。spa

3. QSerialPort

參考類幫助文檔htm

相關串口配置函數:繼承

  1. bool sendBreak(int duration = 0)
  2. bool setBaudRate(qint32 baudRate, Directions directions = AllDirections)
  3. bool setBreakEnabled(bool set = true)
  4. bool setDataBits(DataBits dataBits)
  5. bool setDataTerminalReady(bool set)
  6. bool setFlowControl(FlowControl flowControl)
  7. bool setParity(Parity parity)
  8. void setPort(const QSerialPortInfo &serialPortInfo)
  9. void setPortName(const QString &name)
  10. void setReadBufferSize(qint64 size)
  11. bool setRequestToSend(bool set)
  12. bool setStopBits(StopBits stopBits)

先配置完成後,調用open可開啓串口ip

阻塞數據讀寫:文檔

  1. virtual bool open(OpenMode mode)
  2. virtual bool waitForBytesWritten(int msecs = 30000)
  3. virtual bool waitForReadyRead(int msecs = 30000)

同時能夠利用QIODevice類的readyRead信號,connect之後可在收到信息後在槽中響應,利用get

  1. qint64 read(char *data, qint64 maxSize)
  2. QByteArray read(qint64 maxSize)
  3. QByteArray readAll()

讀取內容。

串口可能在發送一串字符時每個字符收到均有一次readyRead響應,此時須要自行判斷終止符。

相關文章
相關標籤/搜索