串口设备的名字
普通物理串口是ttySx,比如ttyS0, ttyS1等,USB转串口的设备名为ttyUSBx,比如ttyUSB0, ttyUSB1等
设置读写RAW模式
这一步非常重要,不设置就收不到数据,一个字节都没有,下面是设置RAW模式的代码
int SetRawMode(int fd)
{
struct termios opt;
opt.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
opt.c_oflag &= ~OPOST;
opt.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
opt.c_cflag &= ~(CSIZE|PARENB);
opt.c_cflag |= CS8;
if (tcsetattr(fd, TCSANOW, &opt)!=0) {
fprintf(stderr, "set rawmode fail\n");
return -1;
} else {
fprintf(stderr, "set rawmode ok\n");
return 0;
}
}
读写超时控制
尤其是读操作,否则经常收不全数据,下面是读的示例代码
int ReadFix(int fd, char* buffer, int FixLen, int Timeout)
{ <