메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

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
번호 분류 제목 날짜
101 전기,전자,펌웨어 avr atmega128 질문입니다 ㅠㅠ 1 file 2013.10.25
100 전기,전자,펌웨어 부품 관련 1 2013.09.24
99 프로그래밍 5명의 키를 읽어 들여 가장 큰 키와 작은 키를 구하는 프로그램을 작성하시오 1 2013.06.20
98 프로그래밍 배열 문제인데요 ㅠㅠ 1 2013.06.20
97 프로그래밍 c# 시리얼통신 어려운 부분알려주세요. 2 2013.06.19
96 프로그래밍 c# 시리얼통신 도와주세요. 5 2013.06.18
95 프로그래밍 c# 테트리스 질문입니다. 1 2013.06.17
94 프로그래밍 더블버퍼링... 1 2013.06.02
93 프로그래밍 C언어 문제가 너무 어려워서 질문드려요 1 2013.05.24
92 프로그래밍 선생님, 테트리스 관련해서 질문이 있습니다..^^; 3 2013.05.19
91 일반 ATmega128에 대해서 질문좀 드릴게요... 1 2013.05.16
90 프로그래밍 C언어 문제좀 풀어주세요~ 1 2013.05.10
89 전기,전자,펌웨어 AVR ATmega 128로 인터럽트를 이용한 LED를 점멸하는 방법 좀 알려주세요. 3 2013.04.25
88 프로그래밍 c언어 초보좀 도와주세요 1 2013.04.20
87 프로그래밍 asd 2013.04.13
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11