Qt串口传输波特率问题。

波特率上位机必须和嵌入式设备相匹配!!!

昨天一天时间调试串口接受波特率数据。没有重视波特率以及调试过程。
调试程序的时候一定要注意波特率。
不匹配的话数据会出错,

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);
		}
	}
}




你可能感兴趣的:(Qt开发)