C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[66754] MFC 시리얼 송수신 문제에 대해서 질문드립니다.
김호범 [] 2446 읽음    2012-03-29 00:07
안녕하세요.

현재 MFC로 시리얼 통신 프로그램을 짜서 ATMEGA128이라는 마이크로프로세서와 통신을 하는 중입니다.

시리얼 통신에 관한 클래스는 인터넷에 많이 쓰이는 걸로 찾아서 만들었습니다.

통신이 잘 되는 지 확인하려고 시리얼 RS-232 포트의 Rx와 Tx를 서로 연결하고 MFC에서 문자열을 보내고, 다시 되돌아온 문자열을 화면에 출력했습니다.

8바이트까지는 잘 보내지고 받아와지는데, 보내는 바이트 수가 8바이트를 넘어가면 잘려나가네요.

포트 설정이 잘못된 것 같지는 않습니다. 속도나 패리티 같은 걸 바꿔바도 똑같은 현상이 발생합니다.

포트에 내보내는 건 CommTread.cpp에 있는 WriteComm 함수를 이용하여 WriteComm("abcdef",6); 처럼

문자열과 문자열의 길이로 보냅니다. "1234567890" 이렇게 10문자를 보내면 화면에는 "90"만 출력됩니다.

앞에 "12345678" 8바이트는 어디로 버려졌는지 알 수가 없네요...

통신이 잘 된다면 보낸 바이트 수만큼 되돌아와야 하는데, 어째서 8바이트로 잘라지는 걸까요...

[추가내용]
  CommThread.cpp에서 ThreadWatchComm 메소드 내에서 Sleep(700); 처럼 값을 크게 주면 많이 보내도 읽어오네요.
  Sleep을 대체할 수 있는 방법은 없을까요? Timeout을 조정해야 하나요...

+ -

관련 글 리스트
66754 MFC 시리얼 송수신 문제에 대해서 질문드립니다. 김호범 2446 2012/03/29
66768     Re:MFC 시리얼 송수신 문제에 대해서 질문드립니다. 송신영 4091 2012/03/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.