안 드 로 이 드 가 사용 할 수 있 는 modebus CRC 16 계산,대응 하 는 C 언어 를 첨부 한 CRC 16

853 단어 안 드 로 이 드
최근 에 안 드 로 이 드 직렬 통신 은 modebus 의 crc 16 통신 을 사용 해 야 한다 고 썼 습 니 다.인터넷 에서 많은 문자열 을 찾 았 습 니 다.저 는 byte 가 필요 합 니 다.자바 에 기호 수가 없 기 때문에 전환 이 좀 번 거 롭 습 니 다.C 에 대해 한 걸음 한 걸음 테스트 를 했 습 니 다.최종 테스트 는 틀 리 지 않 았 습 니 다.
코드 는 다음 과 같 습 니 다:
//java
int CRC16_Check(byte Pushdata[],int length)  
{  
	int Reg_CRC=0xffff; 
	int temp;
	int i,j;    
  
	for( i = 0; i>1)^0xA001; 
		   else  
			   Reg_CRC >>=1; 
	   }    
	}  
	return (Reg_CRC&0xffff);  
} 

//C
u16 CRC16_Check(u8 *Pushdata,u16 length)  
{  
	u16 Reg_CRC=0xffff;  
	u8 Temp_reg=0x00;  
	u16 i,j; 
	   
	for( i = 0; i>1^0xA001;  
			else  
				Reg_CRC >>=1;  

   		}    
	}  
	return (Reg_CRC);  
} 

좋은 웹페이지 즐겨찾기