말씀 주신 프로그램에 아래의 헤더 파일을 추가하여 테스트 해 보았는데 문제가 없네요.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/poll.h>
    #include <termios.h>                   // B115200, CS8 등 상수 정의
    #include <fcntl.h>                     // O_RDWR , O_NOCTTY 등의 상수 정의

그러나 말씀 주신 내용을 보면 상대편과 보오율이 맞지 않았을 때의 모습처럼 보입니다.

1. 만일 전송하는 데이터와 수신한 데이터의 바이트 개수가 많이 차이난다면
    보오율 설정 문제일 경우가 많습니다.

2. 만일 몇 바이트 차이가 나지 않는다면 패리티 설정이 맞지 않을 수 있습니다.

3. 전송한 바이트 개수와 수신한 바이트 개수가 같다면 DataBit 가 설로 다른 경우입니다.


아래의 글도 참고하여 주십시오.

FALINUX 포럼 : 시리얼 통신 - 통신 속도 결정

  http://forum.falinux.com/bbs/zboard.php?id=lecture2&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=121


FALINUX 포럼 : start bit와 stop bit

  http://forum.falinux.com/bbs/zboard.php?id=lecture2&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=122


FALINUX 포럼 : data bit size와 parity

   http://forum.falinux.com/bbs/zboard.php?id=lecture2&page=5&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=123
    


>pc 와 연결해서 데이타를 확인하면 잘 들어오는데요, ez-2410 시리얼쪽과 연결해서 데이터를 확인해보면 이상하게 들어옵니다.
>
>다음은 틀린 데이타와 올바른 데이타입니다. 이상하게 한 바이트 중 앞에 4비트가 뭔가 마스킹이나 세팅이 되는 것 같습니다.
>
>틀린 데이타    : fe 85 00 ff ff 00 05 77 42 0c ec 05 00 00 00 00 00 0f fd ff 00 ff fe 00 00 05 73 73 00 00 00 00 00 02 a0 b5 82 18 ff fd ff ff fe 00 00 05 ff 02 00 00 00 00 00 00 00 00 00 00 00 00 00 02 7a 05 00 00 72 00 00 00 00 04 71 fe
>올바른 데이타 : 7e 45 00 ff ff 00 05 37 22 0c 69 05 00 00 00 00 00 8f fd ff 00 ff fe 00 00 05 33 33 00 00 00 00 00 02 50 d5 42 88 ff fd ff ff fe 00 00 05 ff 02 00 00 00 00 00 00 00 00 00 00 00 00 00 02 3a 85 00 80 32 00 00 00 00 09 35 7e
>
>
>시리얼 프로그램은 딱히 문제가 없다고 생각합니다.
>int main( )
>{
>    int handle;
>    struct termios oidtio, newtio;
>    unsigned char buf[120];
>    int RxCount;
>    int i;
>
>    /* 시리얼 인터페이스는 /dev/ttyS00 이나 /dev/ttyS01이 될 수 있다. */
>    handle = open( "/dev/ttyS1", O_RDWR | O_NOCTTY );
>
>        printf("handle = %dn", handle);
>
>    if( handle < 0 ) {
>        printf( "Serial Open Fail [/dev/ttyS1]rn " );
>        exit(0);
>    }
>
>    tcgetattr(handle, &oidtio);
>
>    for(i=0; i < NCCS; i++)
>            newtio.c_cc[i] = ' ';
>
>    memset( &newtio, 0, sizeof(newtio));
>    newtio.c_cflag = B115200 | CRTSCTS | CS8 | CLOCAL | CREAD;
>    newtio.c_iflag = IGNBRK | IGNPAR;
>    newtio.c_oflag = 0;
>
>    newtio.c_cc[VTIME] = 0;
>    newtio.c_cc[VMIN] = 1;
>
>    tcflush( handle, TCIFLUSH );
>
>    tcsetattr( handle, TCSANOW, &newtio );
>    printf("Read module startn");
>
>    while(1) {
>
>        tcflush( handle, TCIFLUSH );
>        memset(buf, 0, 120);
>
>
>        RxCount = read( handle, buf, 120);
>
>        printf("RxCount = %dn", RxCount);
>
>        for(i = 0; i < RxCount; i++) {
>            printf("%x ", buf[i]);
>        }
>        printf("nn");
>
>
>    }
>
>    close(handle);
>
>    exit(0);
>}
>
>혹시 이런 현상이 있으셨던 분들 어떻게 해결하셨는지 답변 부탁드립니다.
>