modbus RTU 통신 프로토콜에서 CRC 검사 코드 세그먼트

731 단어 개인 요약
최근 485로 통신하는 센서를 사용하여 코드를 중복 작성하는 것을 피하기 위해 485moubus RTU 통신 모드의 CRC 검사 프로그램을 특별히 기록하였다.
void CrcCheck(unsigned char *buf,unsigned char len)
{
	unsigned short crc = 0xFFFF;
	unsigned char i,j=0;
	while(j < len)
	{
		crc ^= buf[j];
		for(i = 0; i < 8; i++)
		{
		    if(crc & 0x01){
	                crc >>= 1;
			crc ^= 0xA001;
		    }
		    else
			crc >>= 1;
		}
		j++;
	}
	buf[j] = crc % 0x100;
	buf[j+1]=crc / 0x100;
}

int main(void)
{
	char i = 0;
	unsigned char data[8]={0x01,0x03,0x00,0x00,0x00,0x01};
	CrcCheck(data,6);
	for(i = 0; i< 8; i++)
		printf("data[%d]:%x\r
",i,data[i]); }

이상은 CRC 체크에 대해 다항식 0XA001을 생성하는 CRC 체크에 대한 생성 코드입니다. 잘못된 점이 있으면 지적해 주십시오.

좋은 웹페이지 즐겨찾기