我在Qt上编写串口相关的代码是发现在调用close()函数时出现了错误,代码如下:
打开串口时没问题:
struct termios options;
QString s = QString(tr("/dev/%1").arg(com));
serialDevice = open(s.toAscii().data(),O_RDWR | O_NONBLOCK | O_NDELAY);
if (serialDevice < 0) {
QMessageBox::warning(0,tr("warning"),tr("open port failed!"));
return ;
}
tcgetattr(serialDevice, &options);
cfsetispeed(&options, SERIAL_BAUDRATE);
cfsetospeed(&options, SERIAL_BAUDRATE);
options.c_cflag |= CS8; //8 bit data bits
options.c_cflag &= ~PARENB; //Clear parity enable
options.c_iflag &= ~INPCK; //Enable parity checking
options.c_cflag &= ~CSTOPB; //1 bit stop bit
options.c_cc[VMIN] = 1;
options.c_cc[VTIME] = 0;
options.c_lflag &=