시리얼
글쓴이: limix / 작성시간: 화, 2018/01/30 - 1:55오후
시리얼 통신에 대해 공부하고 있는 도중에 모르는 것이 있어 올립니다.
현재 윈도우끼리의 시리얼 데이터를 주고 받는 것은 전혀 문제가 없는데요
리눅스 보드에서 윈도우 pc로 시리얼 데이터를 보낼때 데이터 손실이 문제가 생깁니다.
제가 확인해본 것은 윈도우에서 putty 프로그램을 사용해서 데이터의 수신을 확인해보니
제대로 값이 들어오는 것을 확인할 수 있었습니다.
문제는 C 프로그램으로 들어온 데이터를 보려고 하면 데이터가 제대로 들어오기도 하고
안들어오기도 합니다.
int CSerialPort::receiveMessage(char* buf, int sz) { if (ReadFile(m_hComm, buf, sz, &m_dwBytesRead, NULL)) { return m_dwBytesRead; } else { std::cout << "Serial Read Error" << std::endl; return -1; } }
buf에 제대로 데이터가 들어오기도 하지만 잘못된 문자가 들어오기도 하고 짤려서 들어오기도 합니다.
어떤식으로 수정을 해야 할까요?
Forums:
ReadFile의 프로토타입이 뭐죠?
ReadFile의 프로토타입이 뭐죠?
그리고 함수를 보니 읽은 만큼 길이를 리턴하네요
예를 들어 10B를 보내도 이 함수는 4B, 6B 끊어서 받을 수 있다는 말이죠
리턴값을 확인 해보셨나요?
댓글 달기