u16_t crc16_ch(u16_t crc, u8_t b) { u32_t i = 8; crc ^= (u16_t)b << 8; do { if (crc & 0x8000) { crc <<= 1; crc ^= 0x1021; } else { crc <<= 1; } } while(--i); return crc;}