Функция отправки команды с последующим чтением.
#include <hw/spi-master.h>
int spi_cmdread( int fd,
uint32_t device,
void *cbuf,
int16_t clen,
void *rbuf,
int rlen );
- fd
- Дескриптор файла, который вернула функция spi_open().
- device
- Идентификатор устройства с не более чем одним из следующих флагов, опционально объединенных:
- SPI_DEV_DEFAULT
- Устройство по умолчанию, используется spi_setcfg(), spi_getdevinfo().
- SPI_DEV_LOCK
- Заблокировать устройство для spi_read(), spi_write(), spi_xchange().
- SPI_DEV_UNLOCK
- Разблокировать устройство для функций указанных в
SPI_DEV_LOCK
.
- cbuf
- Указатель на буфер команды.
- clen
- Длина команды, в байтах.
- rbuf
- Указатель на буфер для получения.
- rlen
- Длина чтения, в байтах.
libspi-master
Функция отправляет команду и затем считывает данные с конкретного устройства на шине SPI. Драйвер SPI обычно считает ошибкой, если количество байт, возвращаемых этой функцией, не совпадает с количеством байт, которые он попросил функцию прочитать. Вы можете достичь тех же результатов, вызвав spi_xchange().
- nbytes
- Количество успешно прочитанных байт.
- -1
- Произошла ошибка, код ошибки записывается в errno.
- EIO
- Запись на устройство не удалась, или произошла аппаратная ошибка.
- EINVAL
- Идентификатор устройства недействителен, или вы пытаетесь разблокировать устройство, которое не заблокировано.
- ENOMEM
- Недостаточно памяти.
- EPERM
- Устройство заблокировано другим подключением.
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
errno, spi_xchange()
Предыдущий раздел: Библиотека разработки SPI драйверов