unsigned char crchigh;
unsigned char crclow;
unsigned int result;
uint16_t CRC16(uint8_t *ptr, uint16_t len)
{
unsigned char i;
unsigned short crc = 0xFFFF;
if (len == 0) {
len = 1;
}
while (len--) {
crc ^= *ptr;
for (i = 0; i<8; i++)
{
if (crc & 1) {
crc >>= 1;
crc ^= 0xA001;
} else {
crc >>= 1;
}
}
ptr++;
}
return(crc);
}
int main(void)
{
HAL_UART_Transmit(&huart1,rs485buf,sizeof(rs485buf),1000); //01 03 04 00 00 00 2D 3A 2E
result = CRC16(rs485buf,7);
crclow = result; //倒数第二位 低