안녕하세요.

PC의 serial 포트와 와 EZ-E01의 UART1(ttySA1)을 연결하여 시리얼 통신을 하
려고 하는데
한쪽에서 보낸 것이 다른 쪽으로 잘 가지 않아서 문의 드립니다.
아래와 같이 보편적으로 알려진 serial 통신 프로그램을 사용하였는데
한 쪽에서 write 수와 다른 쪽에서 real한 수가 다르며 내용 또한 완전히 다르
게 나옵니다.

PC와 PC 사이의 연결은 이 프로그램으로 잘 되며, EZ-E01과 다른 보드의 UART
와도 잘 수행되는데,
왜 유독 PC와 EZ-E01만은 잘 안되는지 궁금합니다.
BAUDRATE 등의 환경도 잘 만들어 주었다고 생각하는데, 제가 뭘 잘 못 한 건
지 잘 모르겠습니다.

조언을 부탁드리겠습니다.


// 사용한 프로그램입니다.
#include
#include

#define BAUDRATE B38400
#define MODEMDEVICE "/dev/ttyS0"

main()
{
struct termios oldtio, newtio;
char buf[255];

fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY);
if (fd<0)
{
perror(MODEMDEVICE);
exit(-1);
}
tcgetattr(fd,&oldtio);
bzero(&newtio, sizeof(newtio));
newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;
newtio.c_iflag = IGNPAR | IGNCR;
newtio.c_oflag = 0; newtio.c_lflag = ICANON;
tcsetattr(fd, TCSANOW, &newtio);
res = read(fd,buf,255);
buf[res] = 0;
printf("%s
",buf);
tcsetattr(fd, TCSANOW, &oldtio);
}