SPI.setBitOrder()
Устаревшая SPI.setBitOrder() задаёт порядок передачи битов по шине SPI: с младшего (LSBFIRST) или со старшего (MSBFIRST); в новых проектах лучше указывать порядок через SPISettings.
Полная статья
Описание
setBitOrder() определяет, в каком порядке биты отправляются и принимаются по шине SPI: начиная с наименее значимого бита (LSBFIRST) или с наиболее значимого (MSBFIRST). Выбор зависит от того, какой порядок ожидает подключённое устройство — это всегда указывается в его документации.
Функция входит в состав библиотеки SPI. Подробнее — в разделе SPI.
Внимание:
setBitOrder()считается устаревшей и не рекомендуется для новых проектов. Вместо неё используйте SPISettings совместно с SPI.beginTransaction() для задания всех параметров шины в одном месте.
Синтаксис
SPI.setBitOrder(order)
Параметры
order— порядок битов при передаче. Допустимые значения:LSBFIRST— сначала передаётся младший бит;MSBFIRST— сначала передаётся старший бит.
Возвращает
Ничего.
Где применяется
Порядок битов — обязательный параметр при работе с любым SPI-устройством. Большинство современных датчиков, дисплеев и микросхем памяти используют MSBFIRST, однако встречаются и исключения — например, некоторые сдвиговые регистры и старые интерфейсные микросхемы требуют LSBFIRST. Всегда сверяйтесь с datasheet конкретного компонента.
Практические замечания
- Если порядок битов выбран неверно, данные будут приходить искажёнными: биты окажутся в зеркальном порядке, и показания датчика или команды дисплея не будут работать корректно.
- Функцию нужно вызывать до начала передачи данных, в идеале — сразу после
SPI.begin(). - В новых скетчах передавайте порядок битов через объект SPISettings внутри SPI.beginTransaction(): это более читаемый и поддерживаемый подход, который хранит все настройки шины в одном месте.
- Если вы работаете с несколькими SPI-устройствами с разными настройками, SPISettings и SPI.beginTransaction() особенно удобны — они позволяют переключаться между конфигурациями без риска забыть обновить отдельные параметры.