简介:扫码枪扫描二维码通过串口将数据发送到主机。
1、设置串口属性
QSerialPort * serial_port_ = new QSerialPort(this);
serial_port_->setPortName("/dev/ttyS0"); //这里对应com1口
serial_port_->setBaudRate(QSerialPort::Baud9600);//设置波特率为9600
serial_port_->setDataBits(QSerialPort::Data8);
serial_port_->setParity(QSerialPort::NoParity);
serial_port_->setStopBits(QSerialPort::OneStop);
serial_port_->setFlowControl(QSerialPort::NoFlowControl);
2、打开串口
serial_port_->open(QIODevice::ReadWrite);
3、接收数据
connect(serial_port_, SIGNAL(readyRead()), this, SLOT(SlotReadSerialData()));
void XXX::SlotReadSerialData()
{
int buffer_length;
QByteArray read_data;
read_data = serial_port_->readAll();
recieve_buffer_.append(read_data);
buffer_length = recieve_buffer_.size();
if(buffer_length >= 1)
{
//有的扫码枪以\r分隔,有的以\n进行分隔。
if(recieve_buffer_.at(buffer_length - 1) == '\r' || recieve_buffer_.at(buffer_length - 1) == '\n')
{
recieve_buffer_.remove(buffer_length - 1, 1);
emit SignalData(recieve_buffer_);//这里可以改成你自己需要的信号传递出去。
recieve_buffer_.clear();
buffer_length = 0;
}
}
}