其中串口中的一些重要的设备如下;
/*设置等待时间它最小接收字符*/
newtio.c_cc[VTIME] = 1;
newtio.c_cc[VMIN] = 0;
newtio.c_lflag &= ~( ECHO | ECHOE | ISIG);
newtio.c_lflag |=ICANON; //关闭ICANON标志就使终端处于非规范模式 现在处于打开 处于规范模式下
newtio.c_oflag &= ~OPOST; //执行输出处理 现在就关闭状态
newtio.c_iflag |= (IGNPAR | ICRNL); //忽略奇偶校验错误 将CR 映射成NL
int main(void)
{
int fd;
int nread,i,nwrite;
char buff[]="Hello!\r\n";
fd = open_port(fd);
if (-1 == fd){
perror("open error");
return;
}
printf("open %d ok \n",fd);
if((i=set_opt(fd,2400,8,'N',1))<0)
{
perror("set_opt error");
return;
}
printf("fd=%d\n",fd);
nwrite=write(fd,buff,8);
printf("nwrite=%d,%s\n",nwrite,buff);
//nread=read(fd,buff,8);
//printf("nread=%d,%s\n",nread,buff);
fd_set rd;
FD_ZERO(&rd);
FD_SET(fd,&rd);
while(FD_ISSET(fd,&rd))
{
if(select(fd+1,&rd,NULL,NULL,NULL) < 0) //在此阻塞
perror("select error!\n");
else
{
while((nread = read(fd,buff,8))>0)
{
printf("nread = %d,%s\n",nread,buff);
}
}
}
close(fd);
return;
}
http://blog.chinaunix.net/uid-20788636-id-1841319.html