以下是主要程序部分,窗口也非常简单,只有一个发送窗口,一个接收窗口,一个发送按钮。该程序在电脑的linux系统下可以正常运行,能够实现发送和接收功能,但放到arm开发板上就只能发送不能接收了,请各位大侠指点!不胜感激!
void serialport::sendButtonClicked()
{
QString str = m_sendEdit->text();
::write(m_fd,str.toLatin1(),str.length());
}int serialport::openSerialPort()
{
int fd = -1;
const char *devName = "/dev/ttyS0";
fd = ::open(devName, O_RDWR | O_NONBLOCK);
if (fd < 0) {
return -1;
}
termios serialAttr;
memset(&serialAttr, 0, sizeof serialAttr);
serialAttr.c_iflag = IGNPAR;
serialAttr.c_cflag = B115200 | HUPCL | CS8 | CREAD | CLOCAL;
serialAttr.c_cc[VMIN] = 1;
if (tcsetattr(fd, TCSANOW, &serialAttr) != 0) {
return -1;
}
return fd;
}void serialport::remoteDataIncoming()
{
char c;
if(read(m_fd,&c,sizeof c) !=1){
QMessageBox::warning(this,tr("Error"),tr("Receive error!"));
return;
}
m_receiveEdit->insertPlainText(QString(QChar(c)));
}