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:


댓글 달기