/dev/ttyS1 을 사용한 uart 통신 프로그래밍 관련 질문
글쓴이: 이환희 / 작성시간: 화, 2009/04/07 - 8:22오후
ARM9 embedded linux 보드에서 uart 통신을 구현하고 테스트하기 위해 일단 보드의 uart 포트와 pc 를 바로 연결했습니다. pc 에서는 하이퍼 터미널을 사용하고 보드쪽에서는 /dev/ttyS1 device 를 open 하여 간단히 read() 와 write() 를 사용하여 구현했습니다.
위의 상황에서 통신 자체는 문제없이 양방향으로 이루어집니다만 pc 에서 보드로 전송시 - 즉 보드가 read 할 때 - 하이퍼 터미널에서 일련의 테스트용 문자열을 입력하고 마지막에 리턴을 입력하지 않으면 보드측의 프로그램에서 data 를 수신하지 않습니다. 즉 하이퍼 터미널에서 abcd 를 입력하고 리턴을 치면 보드측에서 단번에 abcd 를 수신하는 식으로 동작합니다. 실제 환경에서는 통신 프로토콜상 보드에 data 를 전송할 실제 device 가 CR/LF 를 전송하지 않을 수도 있기 때문에 data 의 수신이 지연 또는 다음번 통신까지 수신이 되지 않는 경우가 발생합니다.
terminal 관련 api 에서 어떻게 튜닝을 해야할 지 알 수 없어서 특별히 이 것과 관련된 option 이나 flag 변경을 해주어야 할 것이 있는지 알려주시면 고맙겠습니다.
ps. stty 명령어는 사용할 수 없기 때문에 termios.h 를 include 하고 보드의 프로그램내에서 직접 세팅해주어야 합니다.
Forums:


댓글 달기