最近在 linux 上写 serial port 的程式遇到一个问题. 假设我
对 serial port 写入一个字串
123456789012345678901234567890
但 serial port 实际上收到的字串却是
1234568902345679013456780
看起来就是每隔7个字符掉一个, 隔3个再掉一个, 然后又隔7掉一隔3掉一
但是用 cutecom 这个软件对 ttyUSB0 操作又完全正常
我的 serial port 初始化设定如下:
tty.c_cflag &= ~PARENB;
tty.c_cflag &= ~CSTOPB;
tty.c_cflag &= ~CSIZE;
tty.c_cflag |= CS8;
tty.c_cflag &= ~CRTSCTS;
tty.c_cflag |= BAUDRATE | CREAD | CLOCAL;
tty.c_iflag &= ~(IXON | IXOFF | IXANY);
tty.c_iflag &= ~(ICANON | ECHO | ECHOE | ISIG);
tty.c_oflag &= ~OPOST;
tty.c_cc[VMIN] = 0;
tty.c_cc[VTIME] = 0;
tcflush(fd, TCIOFLUSH);
if(tcsetattr(fd, TCSANOW, &tty) != 0){
//error
return -1;
}
还请各位前辈指点一二, 感激不尽