我想用 qt 小部件制作类似于用于 flash rom(系统数据包)的 odin flasher 的三星 flasher。
我需要端口上的 c++ 命令来将数据闪烁到设备以及如何将程序连接到设备以进行此操作。
我想用 qt 小部件制作类似于用于 flash rom(系统数据包)的 odin flasher 的三星 flasher。
我需要端口上的 c++ 命令来将数据闪烁到设备以及如何将程序连接到设备以进行此操作。
您可以在qtserial library使用库。这是使 uart 工作的示例片段。
QextSerialPort port;
port.setPortName("portName");
port.setBaudRate(BAUD115200);
port.setFlowControl(FLOW_OFF);
port.setParity(PAR_NONE);
port.setDataBits(DATA_8);
port.setStopBits(STOP_1);
port.open(QIODevice::ReadWrite);
用于从 UART 读取数据。
char ch;
port.getChar(&ch))
在这里,您有一个几乎完整的代码,用于通过串行连接连接和发送数据:
.h 文件:
private slots:
void connectSerial();
void sendData();
void closeSerial();
...
.cpp 文件:
#include <QSerialPort>
#include <QSerialPortInfo>
static QSerialPort * serialPort;
...
连接到串行:
void MainWindow::connectSerial()
{
serialPort = new QSerialPort;
serialPort->setPortName("com1");
serialPort->open(QIODevice::ReadWrite);
serialPort->setBaudRate(QSerialPort::Baud9600);
serialPort->setDataBits(QSerialPort::Data8);
serialPort->setParity(QSerialPort::NoParity);
serialPort->setStopBits(QSerialPort::OneStop);
serialPort->setFlowControl(QSerialPort::NoFlowControl);
QObject::connect(serialPort, SIGNAL(readyRead()), this, SLOT(readSerial()));
}
...
读取设备发送的数据:
void MainWindow::readSerial()
{
....
}
将 QString 数据 (12345) 发送到串行:
void MainWindow::sendData()
{
QByteArray payload_buffer;
QString Data = "12345";
payload_buffer = payload_buffer.append(Data.toLatin1());
if(serialPort->isWritable()){
serialPort->write(payload_buffer,(payload_buffer.size()));
}
}
...
记得关闭连接!:
void MainWindow::closeSerial()
{
serialPort->close();
}
...