글 수 48
2006.12.29 18:24:52 (*.105.125.81)
53380
시간에 시리얼 통신에 대한 간단한 에제를 올렸습니다. 앞으로 몇 회에 걸져처 예제의 각각의 행이 어떤 뜻인지를 자세히 설명해 드릴려고 합니다. 예제를 보시면, 설정하는 내용이 많습니다만 중요 내용을 자세히 말씀을 드릴 수 있도록 노력하겠습니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <termios.h>
#include <fcntl.h>
int main( void)
{
int fd; // (1) 시리얼 통신의 파일 디스크립터
struct termios newtio;
fd = open( "/dev/ttyS0", O_RDWR ¦ O_NOCTTY ¦ O_NONBLOCK ); // (2) com1을 open?
memset( &newtio, 0, sizeof(newtio) );
newtio.c_cflag = B115200; // (3) 통신 속도 115200
newtio.c_cflag ¦= CS8; // (4) 데이터 비트가 8bit
newtio.c_cflag ¦= CLOCAL ¦ CREAD; // (5) 쓰기는 기본, 읽기도 가능하게
newtio.c_iflag = 0; // (6) 패리티 사용 안함
newtio.c_oflag = 0;
newtio.c_lflag = 0;
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 1;
tcflush (fd, TCIFLUSH );
tcsetattr(fd, TCSANOW, &newtio );
write( fd, "forum.falinux.com", 17); // (7) 시리얼로 17자의 문자열을 전송
close( fd); // (8) 통신 포트 사용 중지
return 0;
}


