一.基于串口通信。
serialport 类
在.pro文件中添加 QT += serialport 直接看代码:
/* parity */parityList<<"无"<<"奇"<<"偶";ui->parity->addItems(parityList);ui->parity->setCurrentIndex(0);/* data bits */dataBitsList<<"5"<<"6"<<"7"<<"8";ui->dataBit->addItems(dataBitsList);ui->dataBit->setCurrentIndex(3);/* stop bits */stopBitsList<<"1"<<"1.5"<<"2";ui->stopBit->addItems(stopBitsList);ui->stopBit->setCurrentIndex(0);相信注释写的很清楚了。从代码看,必须定义一个QSerialPortInfo类的对象,用于遍历系统可以使用的串口,用于显示。
串口发送函数如下:
![]()
接受函数 可以用readall();
二:基于tcp/ip通讯
1:tcp客户端:
主要掌握QTcpSocket类的五个信号:connected:连接上服务器成功disconnected:断开服务器
readyRead:收到客户端信息
hostFound:发现主机
error(QAbstractSocket::SocketError);出错有了这五个信号,再自己编写响应的曹函数,便可以实现通信。
tcpSocket->connectToHost(*server_ip,port); //连接,连接成功时 发出connect信号
2:tcp服务器:
QTcpServer类,掌握信号SIGNAL:newConnection :发现新的客户端连接上来QTcpSocket类,掌握信号SIGNAL:disconnected :客户端断开连接不管是服务器模式还是客户端模式,都有响应的发送write函数和接受read函数。
3:udp模式:
udp模式更简单,还可以广播地址发送数据udpSocket->writeDatagram((char *)&Sdata.buf[0],Sdata.buf_length,QHostAddress::Broadcast,port);