QT串口发送十六进制数据接收串口数据并十六进制显示
[喝小酒的网摘]http://blog.const.net.cn/a/4098.htm
代码如下:
struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,10};
//定义一个结构体,用来存放串口各个参数
myCom = new Win_QextSerialPort(ui.comboBox->currentText(),myComSetting,QextSerialBase::EventDriven);
//定义串口对象,并传递参数,在构造函数里对其进行初始化
myCom ->open(QIODevice::ReadWrite);
myCom->setBaudRate(BAUD115200);
myCom->setDataBits(DATA_8);
myCom->setParity(PAR_NONE);
myCom->setStopBits(STOP_1);
myCom->setFlowControl(FLOW_OFF);
myCom->setTimeout(10);
//以可读写方式打开串口
connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));
//信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作
//发送十六进制数据
QByteArray ba;
for (int i=0;i<256;i++)
{
ba[i] = i;
}
myCom->write(ba);
//接收串口数据以字符和十六进制数据显示
QByteArray temp = myCom->readAll();
//读取串口缓冲区的所有数据给临时变量temp
ui.textBrowser->insertPlainText(temp);
ui.textEdit_2->insertPlainText(temp.toHex());
//将串口的数据显示在窗口的文本浏览器中
代码如下:
struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,10};
//定义一个结构体,用来存放串口各个参数
myCom = new Win_QextSerialPort(ui.comboBox->currentText(),myComSetting,QextSerialBase::EventDriven);
//定义串口对象,并传递参数,在构造函数里对其进行初始化
myCom ->open(QIODevice::ReadWrite);
myCom->setBaudRate(BAUD115200);
myCom->setDataBits(DATA_8);
myCom->setParity(PAR_NONE);
myCom->setStopBits(STOP_1);
myCom->setFlowControl(FLOW_OFF);
myCom->setTimeout(10);
//以可读写方式打开串口
connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));
//信号和槽函数关联,当串口缓冲区有数据时,进行读串口操作
//发送十六进制数据
QByteArray ba;
for (int i=0;i<256;i++)
{
ba[i] = i;
}
myCom->write(ba);
//接收串口数据以字符和十六进制数据显示
QByteArray temp = myCom->readAll();
//读取串口缓冲区的所有数据给临时变量temp
ui.textBrowser->insertPlainText(temp);
ui.textEdit_2->insertPlainText(temp.toHex());
//将串口的数据显示在窗口的文本浏览器中