메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

묻고 답하기
조회 수 7,828 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

위로 아래로 댓글로 가기 인쇄 쓰기 목록
?

단축키

Prev이전 문서

Next다음 문서

위로 아래로 댓글로 가기 인쇄 쓰기 목록
?
  • WhiteAT 2011.05.21 21:07

    문자가 8바이트씩 들어오지는 않을 겁니다.;;

    항상 달라질수 있습니다. int nRcvSize 변수값에 수신된 바이트 수가 있으니 확인하실수 있을 겁니다.~~

     

    예를 들어 24바이트를 받아야 하는데, 8바이트씩 3번 받을수도 있고, 7+7+7+3 바이트로 받을 수도 있습니다.

    이런 이유는 수신쓰레드가 무한히 돌면서 수신된 값이 있을 때마다 메세지를 날리는데,

    메세지 날아오는 간격이 일정치 않아서 그런겁니다.;;

    쓰레드에 대해 아시면 쉽게 이해하실텐데.. 일단 이것은 모르셔도 됩니다;;;;

     

    해결방법은

    전역 변수로 문자열을 만들고 그 문자열에 수신데이터를 계속 쌓으면 됩니다.

    그리고 수신된 데이터를 분석하고, 필요 없으면 버리고, 유요한 데이터면 사용하면 됩니다.

     

    예를 들어, "ABCDEF", "GH1234" , "5678" 로 3번 값이 들어오던

                       "ABCD", "EFGH12", 345678" 로 값이 오던,  

         "ABCDEFGH12345678" 라는 데이터가 들어오게 됩니다.

    일단 이런식으로 데이터를 받으면 놓치는 데이터는 없을 겁니다.

     

     

    2번 같은 경우는,

    STX, ETX, CRC 를 추가하여 하나의 패킷구조로 통신해야 가능합니다.

    먼저 수신된 데이터가  유효한지를 검사해야 원하는 위치의 데이터를 얻을 수 있습니다.

     

     

List of Articles
번호 분류 제목 날짜
71 일반 ATmega128에 대해서 질문좀 드릴게요... 1 2013.05.16
70 프로그래밍 선생님, 테트리스 관련해서 질문이 있습니다..^^; 3 2013.05.19
69 프로그래밍 C언어 문제가 너무 어려워서 질문드려요 1 2013.05.24
68 프로그래밍 더블버퍼링... 1 2013.06.02
67 프로그래밍 c# 테트리스 질문입니다. 1 2013.06.17
66 프로그래밍 c# 시리얼통신 도와주세요. 5 2013.06.18
65 프로그래밍 c# 시리얼통신 어려운 부분알려주세요. 2 2013.06.19
64 프로그래밍 배열 문제인데요 ㅠㅠ 1 2013.06.20
63 프로그래밍 5명의 키를 읽어 들여 가장 큰 키와 작은 키를 구하는 프로그램을 작성하시오 1 2013.06.20
62 전기,전자,펌웨어 부품 관련 1 2013.09.24
61 전기,전자,펌웨어 avr atmega128 질문입니다 ㅠㅠ 1 file 2013.10.25
60 전기,전자,펌웨어 avr atmega128 질문입니다. 1 2013.11.07
59 일반 위젯 개발 완료 하셨나요? 1 2013.11.12
58 프로그래밍 c+초고수님들중 푸실수있는분 ㅠㅠ 1 2013.11.25
57 프로그래밍 C# 폼에다가 마우스로 선그리기 어떻게하나요?? 1 2013.11.29
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11