波特率上位机必须和嵌入式设备相匹配!!!
昨天一天时间调试串口接受波特率数据。没有重视波特率以及调试过程。
调试程序的时候一定要注意波特率。
不匹配的话数据会出错,
Qt串口传输的两种实现方式
- Qt5 的Qserialport 估计是将qextserialport封装 可能有点不稳定
- qextserialport 2007年版本
设置Qt波特率
这里给一个qextserialport如何在窗口中设置的例子,要在Qt界面添加comboBox并且转到槽函数。
void MainWindow::on_comboBox_Freq_currentTextChanged(const QString &arg1)
{
//设置波特率
if (my_serialport != NULL)
{
switch (ui->comboBox_Freq->currentText().toInt())
{
case 50:
my_serialport->setBaudRate(BAUD50);
break;
case 75:
my_serialport->setBaudRate(BAUD75);
break;
case 110:
my_serialport->setBaudRate(BAUD110);
break;
case 134:
my_serialport->setBaudRate(BAUD134);
break;
case 150:
my_serialport->setBaudRate(BAUD150);
break;
case 200:
my_serialport->setBaudRate(BAUD200);
break;
case 300:
my_serialport->setBaudRate(BAUD300);
break;
case 600:
my_serialport->setBaudRate(BAUD600);
break;
case 1200:
my_serialport->setBaudRate(BAUD1200);
break;
case 1800:
my_serialport->setBaudRate(BAUD1800);
break;
case 2400:
my_serialport->setBaudRate(BAUD2400);
break;
case 4800:
my_serialport->setBaudRate(BAUD4800);
break;
case 9600:
my_serialport->setBaudRate(BAUD9600);
break;
case 14400:
my_serialport->setBaudRate(BAUD14400);
break;
case 19200:
my_serialport->setBaudRate(BAUD19200);
break;
case 38400:
my_serialport->setBaudRate(BAUD38400);
break;
case 56000:
my_serialport->setBaudRate(BAUD56000);
break;
case 57600:
my_serialport->setBaudRate(BAUD57600);
break;
case 76800:
my_serialport->setBaudRate(BAUD76800);
break;
case 115200:
my_serialport->setBaudRate(BAUD115200);
qDebug() << "*****";
break;
case 128000:
my_serialport->setBaudRate(BAUD128000);
qDebug() << "*****";
break;
case 256000:
my_serialport->setBaudRate(BAUD256000);
break;
default:
my_serialport->setBaudRate(BAUD115200);
}
}
}