개구리님 안녕하세요.
답변해주신대로 인터넷에서 rs232<--> rs485로 변환하는 변환장치를
하나 구입했답니다.

제가 하려는 목적은 EZ-X5에서 제어를 하기 위한것이구요..
개구리님의 강좌중에서 rs485 rts 제어하기 라는 프로그램을 찾았습니다.

이 프로그램을 구동하면 디바이스 드라이버단에서의
수정은 필요가 없는것인지요...
단순히 아래 프로그램을 돌리면 기본적인 통신은 되는것인지 알고 싶습니다.


#include

#include

#include

#include

#include

#include

#include





#include

#include



#include

#include

#include



nt main( int argc, char **argv )

{



int fd,c, res;

struct termios oldtio,newtio;

char buf[255];



int modemctlline;

int txemptystate;



// 시리얼 장치를 연다.

fd = open( "/dev/ttySS0", O_RDWR | O_NOCTTY );

if (fd <0)

{

// 화일 열기 실패

printf( "Device OPEN FAIL
");

return -1;

}



// 통신 환경를 설정한다.

tcgetattr(fd,&oldtio); // 현재 설정을 oldtio에 저장



memset(&newtio, 0, sizeof(newtio));

newtio.c_cflag = B9600 | CS8 | CLOCAL | CREAD ;

newtio.c_iflag = IGNPAR;

newtio.c_oflag = 0;



// set input mode (non-canonical, no echo,...)

newtio.c_lflag = 0;



// 다음 두라인은 통신 방식에 따라서 다르게 설정하여야 한
다.

newtio.c_cc[VTIME] = 0; // 문자 사이의 timer를
disable

newtio.c_cc[VMIN] = 5; // 최소 5 문자 받을 때까진
blocking



tcflush(fd, TCIFLUSH);

tcsetattr(fd,TCSANOW,&newtio);





// 현재 설정된 모뎀 제어 레지스터를 읽는다.

ioctl( fd, TIOCMBIS, &modemctlline);



// RTS를 HIGH로 만든다.

modemctlline = TIOCM_RTS;

ioctl( fd, TIOCMBIS, &modemctlline );



// 데이타를 출력한다.

memset( buf, c, 32 ); buf[32]=0;

write( fd, buf, 32 );

printf( "DATA : [ %s ]
",
buf);



// 모든 데이타가 전송되어 완전하게 버퍼가

// 비워질때까지 대기한다.

while( 1 )

{

ioctl( fd, TIOCSERGETLSR, &txemptystate);

if( txemptystate ) break;

}



// RTS를 LOW로 만든다.

modemctlline = TIOCM_RTS;

ioctl( fd, TIOCMBIC, &modemctlline );



// 잠시 대기한다.

sleep(1);



// 데이타를 읽는다.

res = read(fd,buf,255);

buf[res]=0;

printf("%s:%d
", buf, res);



// 통신상태를 원 위치한다.

tcsetattr(fd,TCSANOW,&oldtio);



close( fd );

return 0;

}