728x90
반응형
시작바이트(STX)-----데이터--------엔딩바이트(ETX)
일단 데이터 내용에는 STX 와 ETX가 들어가지 않는다고 가정합니다.
데이터 내용에는 컴맨드/ 데이터/ 데이터Length/ Check Sum/ 등으로 구성 됩니다.
제일 중요한건 시작(STX)과 끝(ETX)입니다
interrupt[USART0_RXC] void usart0_rx_isr(void){
char data;
data=UDR0;
if(data==STX){ // 시작바이트에서는 인덱스를 초기화 합니다.
index0=0;
rx_buf0[index0++]=data;
}
else if(data==ETX){
rx_buf0[index0]=data;
// Length검사 & Check Sum검사 등을 마친 후
// 컴맨드에 따른 내용을 처리 합니다.
index0=0;
}
else if(index0<RX_Max){ rx_buf0[index0++]=data; }
}
데이터 내용에는 STX 와 ETX가 들어가지 않게 하는 방법에도 여러가지가 있는데
모뎀이나 PLC경우에는 ASC 코드를 사용합니다.
산업용 제어보드 만드는 분들 중에는
니블단위로 짤라서 0x30을 더해서 0x30~0x3F 의 문자로 전송 하기도 합니다.
728x90
반응형
'교육 > AVR' 카테고리의 다른 글
RS232 통신 예제 코드 (12) | 2022.10.30 |
---|