C++ QtSerialPort未写入串行端口

C++ QtSerialPort未写入串行端口,c++,qt,serial-port,g-code,3d-printing,C++,Qt,Serial Port,G Code,3d Printing,我正在尝试将Gcode命令发送到带有QtSerialPort的3d打印机。我能够连接并读取打印机发出的启动gcode,但我无法编写gcode使打印机执行某些操作。我读过很多人的代码,就我所知,我的代码看起来并没有错,但我确实遗漏了一些东西 这是我用来连接3d打印机的: void MainWindow::on_connectButton_clicked() { serial->setPortName(ui->portBox->currentText()); ser

我正在尝试将Gcode命令发送到带有QtSerialPort的3d打印机。我能够连接并读取打印机发出的启动gcode,但我无法编写gcode使打印机执行某些操作。我读过很多人的代码,就我所知,我的代码看起来并没有错,但我确实遗漏了一些东西

这是我用来连接3d打印机的:

void MainWindow::on_connectButton_clicked()
{
    serial->setPortName(ui->portBox->currentText());
    serial->setBaudRate(250000);
    serial->setDataBits(QSerialPort::Data8);
    serial->setParity(QSerialPort::NoParity);
    serial->setStopBits(QSerialPort::OneStop);;
    serial->setFlowControl(QSerialPort::NoFlowControl);
    if (serial->open(QIODevice::ReadWrite)) {
       ui->label->setText("Connected to Printer!!");
    } else {
    ui->label->setText("Error: Failed to connect");
    }
}
这是我正在键入以写入串行端口的内容:

QString command = "G28";
QByteArray x = command.toLocal8Bit();
serial->write(x);
这没有给我错误,但打印机没有反应。我尝试了Qt串行控制台示例,并发送了“G28”,打印机反应正常。在同一个程序中,我添加了一个按钮,执行上面的代码来编写命令,但它什么也没做。这说明问题可能出在如何向端口写入数据上。 有人知道我做错了什么吗?
提前感谢。

正如Rafael在上面所说的,我的问题是我在G28之后失踪了。将其更改为此解决了我的问题:

QString command = "G28\n";
QByteArray x = command.toLocal8Bit();
serial->write(x);

尝试使用拉丁语?什么是拉丁语?添加命令.toLatin1()也是如此;把它转换成拉丁语?我这样做了,但没有任何帮助:(您是否向设备预期的内容发送了正确的命令?