Библиотека LUFA (раннее название MyUSB) версия 101122
SPI Driver - LUFA/Drivers/Peripheral/SPI.h

Functions

static void SPI_Init (const uint8_t SPIOptions)
static void SPI_ShutDown (void)
static uint8_t SPI_TransferByte (const uint8_t Byte) ATTR_ALWAYS_INLINE
static void SPI_SendByte (const uint8_t Byte) ATTR_ALWAYS_INLINE
static uint8_t SPI_ReceiveByte (void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT

Маски для конфигурирования прескалера (предделителя тактов) SPI

#define SPI_SPEED_FCPU_DIV_2   SPI_USE_DOUBLESPEED
#define SPI_SPEED_FCPU_DIV_4   0
#define SPI_SPEED_FCPU_DIV_8   (SPI_USE_DOUBLESPEED | (1 << SPR0))
#define SPI_SPEED_FCPU_DIV_16   (1 << SPR0)
#define SPI_SPEED_FCPU_DIV_32   (SPI_USE_DOUBLESPEED | (1 << SPR1))
#define SPI_SPEED_FCPU_DIV_64   (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))
#define SPI_SPEED_FCPU_DIV_128   ((1 << SPR1) | (1 << SPR0))

Маски конфигурирования полярности SPI SCK

#define SPI_SCK_LEAD_RISING   (0 << CPOL)
#define SPI_SCK_LEAD_FALLING   (1 << CPOL)

Маски конфигурирования среза выборки SPI

#define SPI_SAMPLE_LEADING   (0 << CPHA)
#define SPI_SAMPLE_TRAILING   (1 << CPHA)

Маски конфигурирования порядка бит данных SPI

#define SPI_ORDER_MSB_FIRST   (0 << DORD)
#define SPI_ORDER_LSB_FIRST   (1 << DORD)

Маски конфигурирования режима SPI

#define SPI_MODE_SLAVE   (0 << MSTR)
#define SPI_MODE_MASTER   (1 << MSTR)

Detailed Description

зависимости для исходного кода модуля

Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:

модуля

Драйвер для аппаратного порта SPI, имеющегося на большинстве моделей AVR. Этот модуль предоставляет простой в использовании драйвер для настройки порта AVR SPI и передачи через него данных.


Define Documentation

#define SPI_MODE_MASTER   (1 << MSTR)

Маска режима режима SPI для SPI_Init(). Указывает, что интерфейс SPI должен быть сконфигурирован в ведущем режиме (master mode).

#define SPI_MODE_SLAVE   (0 << MSTR)

Маска режима режима SPI для SPI_Init(). Указывает, что интерфейс SPI должен быть сконфигурирован в подчиненном режиме (slave mode).

#define SPI_ORDER_LSB_FIRST   (1 << DORD)

Маска порядка бит данных SPI для SPI_Init(). Показывает, что данные должны выдвигаться младшим (LSB) битом вперед.

#define SPI_ORDER_MSB_FIRST   (0 << DORD)

Маска порядка бит данных SPI для SPI_Init(). Показывает, что данные должны выдвигаться старшим (MSB) битом вперед.

#define SPI_SAMPLE_LEADING   (0 << CPHA)

Маска режима выборки данных SPI для SPI_Init(). Показывает, что данные должны быть считаны по фронту сигнала.

#define SPI_SAMPLE_TRAILING   (1 << CPHA)

Маска режима выборки данных SPI для SPI_Init(). Показывает, что данные должны быть считаны по спаду сигнала.

#define SPI_SCK_LEAD_FALLING   (1 << CPOL)

Маска полярности тактов SPI для SPI_Init(). Показывает, что SCK должен работать по спаду сигнала.

#define SPI_SCK_LEAD_RISING   (0 << CPOL)

Маска полярности тактов SPI для SPI_Init(). Показывает, что SCK должен работать по фронту сигнала.

#define SPI_SPEED_FCPU_DIV_128   ((1 << SPR1) | (1 << SPR0))

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 128.

#define SPI_SPEED_FCPU_DIV_16   (1 << SPR0)

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 16.

#define SPI_SPEED_FCPU_DIV_2   SPI_USE_DOUBLESPEED

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 2.

#define SPI_SPEED_FCPU_DIV_32   (SPI_USE_DOUBLESPEED | (1 << SPR1))

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 32.

#define SPI_SPEED_FCPU_DIV_4   0

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 4.

#define SPI_SPEED_FCPU_DIV_64   (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 64.

#define SPI_SPEED_FCPU_DIV_8   (SPI_USE_DOUBLESPEED | (1 << SPR0))

Маска прескалера SPI для SPI_Init(). Делит тактовую частоту ядра на 8.


Function Documentation

static void SPI_Init ( const uint8_t  SPIOptions) [inline, static]

Инициализирует подсистему SPI, после чего она готова для передачи данных. Эта инициализация должна быть вызвана перед вызовом любых других подпрограм SPI.

Parameters:
[in]SPIOptionsОпции SPI - маска, составленная из масок SPI_SPEED_*, SPI_SCK_*, SPI_SAMPLE_*, SPI_ORDER_* and SPI_MODE_* masks.
static uint8_t SPI_ReceiveByte ( void  ) [inline, static]

Отправляет ничего не значащий байт через интерфейс SPI, с блокированием выполнения программы, пока передача не завершится. Возвращает байт ответа, посылаемый от подключенного устройства SPI.

Returns:
The байт ответа от подключенного устройства SPI
static void SPI_SendByte ( const uint8_t  Byte) [inline, static]

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

Parameters:
[in]Byteбайт для отправки через интерфейс SPI
static void SPI_ShutDown ( void  ) [inline, static]

Выключает драйвер SPI, запрещает и возвращает ипользовавшуюся аппаратуру в свою исходную конфигурацию по умолчанию.

static uint8_t SPI_TransferByte ( const uint8_t  Byte) [inline, static]

Отправляет и принимает байт через интерфейс SPI, с блокированием выполнения программы, пока передача не завершится.

Parameters:
[in]Byteбайт для отправки через интерфейс SPI
Returns:
байт ответа от подключенного устройства SPI
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines