RS232 인터페이스 열기를 하고 있습니다.
글쓴이: leolo / 작성시간: 월, 2003/07/14 - 9:46오후
RS232 인터페이스 열기를 하고 있습니다.
열고자 하는 상태는 하이퍼터미널로 com1을 열때..
이렇게 열고 싶습니다..
아래 처럼 짜면되는지 알고 싶습니다..
http://myhome.naver.com/leolo/snap.gif
baud rate 9600
8bit data
no parity bit
1 stop bit
no flow control 입니다.
int open_port(char *device, int baud, int flow) { int fd; struct termios oldtio, newtio; static long BAUDRATE; fd = open(device, O_RDWR | O_NOCTTY | O_NDELAY); if(fd == -1){ fprintf(stderr, "err %s: Unable to open %s \n", __FUNCTION__, device); } else fcntl(fd, F_SETFL, 0); tcgetattr(fd, &oldtio); bzero(&newtio, sizeof(newtio)); switch(baud){ case 9600: BAUDRATE = B9600; break; case 19200: BAUDRATE = B19200; break; case 38400: BAUDRATE = B38400; break; default: fprintf(stderr, "err : Unable to baud rate\n"); tcsetattr(fd, TCSANOW, &oldtio); close(fd); exit(0); } /* baud rate */ cfsetispeed(&newtio, BAUDRATE); cfsetospeed(&newtio, BAUDRATE); newtio.c_cflag |= CS8; /* set 8 bits */ newtio.c_cflag &= ~PARENB; /* no parity bit */ newtio.c_cflag &= ~CSTOPB; /* 1 stop bit */ if(flow) newtio.c_cflag |= CRTSCTS; /* h/w flow control */ else newtio.c_cflag &= ~CRTSCTS; /* no flow control */ newtio.c_oflag = 0; newtio.c_iflag = 0; tcsetattr(fd, TCSANOW, &newtio); return (fd); }
Forums:
댓글 달기