Описание
Метод класса SPI передает и одновременно получает байт данных по шине SPI.
Дополнительные возможности Arduino Due
Если при вызове метода SPI.transfer() вы укажите один из контактов SS Arduino Due, то указанный контакт будет автоматически активирован (установлен в низкий уровень) перед началом передачи и обратно деактивирован (установлен в высокий уровень) после завершения передачи данных.
Для управления состоянием контакт SS после передачи данных предусмотрены специальные параметры - SPI_CONTINUE и SPI_LAST. При использовании SPI_CONTINUE, контакт SS будет оставаться активным (в низком уровне) даже после передачи, что позволяет продолжить отправку байтов данных функцией transfer() в пределах той же самой транзакции. При отправке последнего байта из транзакции необходимо использовать параметр SPI_LAST. Если третий параметр в функции transfer() не указан, то в качестве этого параметра по умолчанию используется SPI_LAST. После завершения передачи с флагом SPI_LAST, вывод SS становится неактивным (снова переходит в высокий уровень).
Синтаксис
SPI.transfer(val);
SPI.transfer(slaveSelectPin, val); // только для Arduino Due
SPI.transfer(slaveSelectPin, val, transferMode); // только для Arduino Due
Параметры
val - байт данных, который необходимо отправить по шине SPI
slaveSelectPin (только для Arduino Due) - контакт SS ведомого устройства (Slave).
transferMode (только для Arduino Due) - одно из значений:
- SPI_CONTINUE - оставляет контакт SS в низком уровне, что позволяет продолжить передачу байтов
- SPI_LAST (значение по умолчанию) - после передачи одного байта данных, контакт SS возвращается в высокий уровень.
Возвращаемые значения
байт данных, полученный по шине SPI
Смотрите также
begin()
end()
setBitOrder()
setClockDivider()
setDataMode()
Использование расширенных возможностей SPI на Arduino Due
Библиотека SPI
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/SPITransfer |