#include "qtserialport.h" int QtSerialport::OpenSerialPort(string portName, int baudrate) { QList infos = QSerialPortInfo::availablePorts(); for (int i=0; iisOpen())//如果串口已经打开了 先给他关闭了 { m_serial->clear(); m_serial->close(); } m_serial->setPortName(QString::fromStdString(portName)); m_serial->open(QIODevice::ReadWrite); int x=SetBaudrate(baudrate); if(x == 0) { return 0; } else { return 1; } } int QtSerialport::CloseSerialPort() { m_serial->close(); return 0; } int QtSerialport::SetBaudrate(int baudrate) { bool x=m_serial->setBaudRate(baudrate);//qt的串口类,设置波特率时任何数字都能成功,这是什么鬼???? int tmp = m_serial->baudRate(); if(x) { return 0;//成功 } else { return 1;//失败 } } //qint64 write(const char *data, qint64 len); int QtSerialport::SendData1(const char *data, const unsigned int len) { QByteArray tmp(data, len); // QByteArray tmp2 = tmp.toHex(); //QIODevice::write(const char *data, qint64 maxSize) int num = m_serial->write(tmp); bool re = m_serial->waitForBytesWritten(); if(re) { return num; } else { return -1; } } int QtSerialport::SendData(const char chrSendBuffer[],const unsigned short usLen) { int num = m_serial->write(chrSendBuffer, usLen); return num; } int QtSerialport::ReadData(char * receivedData) { FILE * fileHandle=fopen("D:\\cpp_qtcreator\\witmotionDll_use-build\\debug\\test.dat","w+b"); QByteArray requestData; while (true) { //std::cout<<"SbgRecorder::startRecordSbg--------------:"<waitForReadyRead()) { //requestData.resize(m_serial->size()); requestData = m_serial->readAll(); std::cout<<"size: "<< requestData.size() <