SPI - отправка и чтение данных по шине SPI.
Урок по использованию SPI
SPISettings #
SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode)
Настройки шины:
clock- частота в ГцbitOrder- порядок битов:MSBFIRST|LSBFIRST. Чаще всего используетсяMSBFIRSTdataMode- режим шины:SPI_MODE0|SPI_MODE1|SPI_MODE2|SPI_MODE3. Чаще всего используетсяSPI_MODE0
SPI #
begin #
void begin()
Запустить шину в режиме мастера. Поведение пинов (на классических Arduino):
- Переводит пины SCK и MOSI в режим
OUTPUT. При запущенной шине эти пины не подчиняются функцииdigitalWrite() - Переводит пин SS в режим
OUTPUTи выводит сигналHIGH. При запущенной шине можно менять сигнал на пине при помощиdigitalWrite()(использовать как выход в своих целях), но нельзя переводить SS в режим INPUT: в режиме входа при низком сигнале SPI переключится в режим Slave, по сути - сломается
end #
void end()
Отключить шину. Не меняет режим пинов шины.
beginTransaction #
void beginTransaction(SPISettings settings)
Начать передачу данных с указанными настройками. Примечание:
- Если все три параметра - константы, то эффективнее вызывать начало передачи сразу с конструктором настроек:
SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE0)); - Если хотя бы один - не константа, то эффективнее создать объект
SPISettingsотдельно:
uint32_t freq; // = ...
SPISettings spiset(freq, MSBFIRST, SPI_MODE0);
SPI.beginTransaction(spiset);
endTransaction #
void endTransaction(void)
Завершить передачу данных
transfer #
uint8_t transfer(uint8_t data)
Отправить данные. Вернёт ответ устройства
transfer16 #
uint16_t transfer16(uint16_t data)
Отправить данные, 2 байта. Вернёт ответ устройства
transfer #
void transfer(void *buf, size_t count)
Отправить данные из "массива"
Запишет в массив ответ устройства. Если оно не ответит - заполнит массив нулями!
Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
- Поддержать автора за работу над уроками