|
CPort 3.10을 사용하고 있습니다.
9600에서는 잘 사용하다 이번에 38400으로 사용하려고 합니다.
그냥 수신 이벤트 함수에서 Count로 전달된 만큼 버퍼를 파일에 기록해서 보는데
데이타 중간 중간에 이상한 값이 나타납니다. 순서가 뒤 바뀌는 것도 같구요.
그리고 Count만큼 읽어서 보면 데이타가 실제로는 들어오지 않은 경우도 있습니다.
만약 수신 버퍼를 0xaa으로 초기화 한뒤 Count만큼 버퍼를 읽어 수신버퍼에 쌓고 보면
수신 버퍼에는 기존 초기값 0xaa만 저장되 있습니다.
혹시 같은 경우 보신분 계시면 조언 부탁드립니다.
소스는 아래와 같습니다.
< Databit : 8 / Stopbit : 1 / Parity : None / 38400bps / Flow Control : None >
void __fastcall TfrmMain::ComPort1RxChar(TObject *Sender, int Count)
{
unsigned char Buff[1024] = "";
AnsiString s, temp;
memset(Buff, 0xaa, 1024); // 버퍼 초기화
ComPort1->Read(Buff,Count); // 버퍼에 Count만큼 읽어서 저장
for(int i=0;i<Count;i++){ // temp 변수에 데이타 정리
s.sprintf("%02x",Buff[i]);
temp = temp + " " + s;
}
// 로깅
}
|