시간에 시리얼 통신에 대한 간단한 에제를 올렸습니다. 앞으로 몇 회에 걸져처 예제의 각각의 행이 어떤 뜻인지를 자세히 설명해 드릴려고 합니다. 예제를 보시면, 설정하는 내용이 많습니다만 중요 내용을 자세히 말씀을 드릴 수 있도록 노력하겠습니다.

#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; 
}