|
최명권 님이 쓰신 글 :
: CPort를 이용하여 간단한 시리얼 통신을 하려는데요,
: 일단 열구 닫는건 검포넌트의 도움으로 대충 끝냈구요,
: DSP와 통신하는 것만 남아있습니다.
:
: [ComPort]
: Port = COM1
: BaudRate = 9600
: StopBits = 1
: DataBits = 8
: Parity = None
: FlowControl = None
:
: 데이터는 8비트를 상위 4비트를 헤더, 4비트를 데이터로 사용하려고 합니다. 그래서
:
: #define HEADER_A 0x01
: #define HEADER_B 0x02
: ........
: 송신부쪽에는
: ----------------------------------------
: char szBuf[2];
:
: szBuf[0] = STX;
: ComPort->Write(szBuf, 1);
:
: szBuf[0] = HEADER_A < 4 | DATA_A ; // DATA 는 미리 뒤쪽 4비트만 남게 처리
: ComPort->Write(szBuf, 1);
:
: szBuf[0] = HEADER_B < 4 | DATA_B ;
: ComPort->Write(szBuf, 1);
:
: szBuf[0] = ETX;
: ComPort->Write(szBuf, 1);
: ----------------------------------------
:
: 이럴경우에 STX랑 ETX는 어떤 것이 좋을까요?? 제가 맘대루 해두 되는건 알고 있는데
: 제가 통신이 첨이라 보통은 어케 처리하는지 궁금해서요..
: 저는 헤더가 1부터 시작하니깐
:
: #define STX 0x0F
: #define ETX 0x05
:
: 헤더를 0으루 하구 이렇게 생각하구 있었거든요..
:
: 고수님들 답변 부탁드립니다..
-----------------------------
헤더는 0으로 하지마세요
문자열에 넣을때 0이면 종료됩니다
stx=f5, etx=f6으로 하는게 좋을것 같네요
중간에 ascii코드를 넣으면 0~127 가 됩니다
그리고 stx 다음에 패킷의 길이를 넣으세요
|