I'm working on a code (written by other people) that uses a custom protocol to transmit data over RS485 in 8-bit packets.
For some reason, the protocol is built so that every 8 bits transmitted are actually 7 bits of data. This is because the MSB is always set high.
For instance, if I want to send 0x01, I need to send 0x81, and so on.
I don't really know why. The protocol uses a standard 16-bit CRC calculated over the whole series of packets.
Any idea?