이런거 경험해보신적 있나요? /dev/ttyS0관련
글쓴이: 은영신랑 / 작성시간: 금, 2004/08/20 - 9:48오후
5바이트 정보의 값을 계속해서 보내는 컴퓨터가 있고,
한대는 계속 받아서 프린트하게 해놓았는데요,
처음 몇 바이트를 보내면 read하는 컴퓨터는 가만히 있다가
#echo 1 > /dev/ttyS0 or
#ls > /dev/ttyS0
이런 식으로 한 바이트이상만 셀에서 쓰면 위의 프로그램에서
write해놓은 값까지 모두 읽어버리더라구요.
그리니깐 Read 하는 컴퓨터는 프로그램상에서 보낸값은 모두 버퍼에만 가지고
있고 실제로 셀상에서 보내주는 값에 의해 인터럽트가 걸려서 버퍼의 내용을
모두 읽게 되는것 같습니다.
셀상에서 cat , echo 명령등을 이용하면 서로 잘 통신 하거든요.
그런데 프로그램을 하면 좀 이상해지네요.
프로그램도 상당히 간단하게 만들었거든요.
단지 open, read, write 정도입니다.
감이 잘 안잡힙니다.
Forums:
혹시 fflush사용하시나요?[code:1]NAME
혹시 fflush사용하시나요?
rommance.net
시리얼 통신
제 소스는 아래와 같습니다.
pc1) #./getserial pc2)#./send
생각같아서는 pc2번에서 값을 보내자 마자 pc1에서는 받은 값을 출력해야 합니다.
그런데 그렇지를 않고, 다만
pc2) #echo 1 >/dev/ttyS0 or ls > /dev/ttyS0
등을 이용하면 위에서 보낸값 이외에 send에서 보낸 값까지 모두 출력이 됩니다.
제가 무언가를 잘못해준것 같기는 한데 잘 모르겠습니다.
Raw input mode로 모두 동일하게 설정해 주었고, O_NOCTTY 모드로도 시도는 해보았습니다.
시리얼 통신
serial how-to-programming 의 Non-Canonical 입력모드 방식으로 바꾸어
사용해보니 해결이 되었습니다.
제가 많이 부족하다는 생각이 드네요......
읽어주셔서 감사합니다.
댓글 달기