请问串口读取,如何设置延时
读取串口时经常死在这句话了,
i=read(fd2,&rdata[recver_i],1);
请问串口读取,如何设置延时
我的相关程序
struct termios options;
bzero(&options, sizeof(options));
fd1=open(COM2,O_RDWR); //comm 2
if (fd1==-1)
{
printf("%s open false\n",dev);
exit(0);
}
fcntl(fd1, F_SETFL, 0);
tcgetattr(fd1, &options);
cfsetispeed(&options, BAUDRATE_1);
cfsetospeed(&options, BAUDRATE_1);
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
options.c_cflag &= ~PARENB;
options.c_iflag &= ~INPCK;
options.c_cflag &= ~CSTOPB;
options.c_cflag |= CLOCAL | CREAD;
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_oflag &= ~OPOST;
options.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
options.c_cc[VTIME] = 1; /* 设置超时1 seconds*/
options.c_cc[VMIN] = 1; /* word and word time out, Update the options and do it NOW */
tcsetattr(fd1, TCSANOW, &options);
bzero(&options, sizeof(options));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论