Вопрос

Я не имел никакого отношения к программированию с аппаратными устройствами в течение долгого времени и забыл практически все основы.

У меня есть спецификация того, что я должен отправить в байте, и каждый бит определяется от наиболее значимого бита (Bit7) до наименее значимого (бит 0). Как мне построить этот байт? От MSB до LSB, или наоборот?

Это было полезно?

Решение

Если эти биты «упаковываются» (которые они обычно являются), то порядок битов является родным порядком, 0 - LSB, а 7 - MSB. Биты обычно отправляются не один за другим, а как байты (обычно более одного байта ...).

Согласно с Википедия, Порядок бита иногда может быть от 7-> 0, но это, вероятно, редкий случай.

Другие советы

Если вы собираетесь написать весь байт одновременно, то есть сделайте параллельную передачу, а не сериал, порядок битов не имеет значения.

Если трансфер является Сериал, тогда вы должны выяснить, в каком порядке устройство ожидает биты, невозможно сказать снаружи.

Чтобы просто собрать байт из восьми битов, просто используйте бить или «добавить» биты, по одному: по одному:

byte value = 0;

value |= (1 << n);  // 'n' is the index, with 0 as the LSB, of the bit to set.

Если спецификация говорит MSB, постройте его MSB. В противном случае, если в спецификации говорится LSB, постройте его LSB. В противном случае попросите дополнительную информацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top