Compartilhar via


Função I2CMaster_Read

Cabeçalho: #include <applibs/i2c.h>

Executa uma operação de leitura em uma interface de master I2C. Essa função fornece a mesma funcionalidade que a função de leitura(2) POSIX, exceto que especifica o endereço do dispositivo I2C subordinado que é o destino da operação.

ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);

Parâmetros

  • fdO descritor de arquivo para a interface do master I2C.

  • address O endereço do dispositivo I2C subordinado que é a origem da operação de leitura.

  • buffer O buffer de saída que recebe dados do dispositivo subordinado. Esse buffer deve conter espaço suficiente para receber maxLength bytes. Isso pode ser NULL se maxLength for 0.

  • maxLength O número máximo de bytes a receber. O valor pode ser 0.

Erros

Retorna -1 se um erro for encontrado e definir errno como o valor do erro.

  • EBUSY: a interface está ocupada ou a SCL (linha de relógio I2C) está sendo mantida baixa.

  • ENXIO: a operação não recebeu um ACK do dispositivo subordinado.

  • ETIMEDOUT: a operação tempo limite antes de ser concluída; você pode usar a função I2CMaster_SetTimeout para ajustar a duração do tempo limite.

Qualquer outro errno também pode ser especificado; esses erros não são determinísticos e o mesmo comportamento pode não ser mantido por meio de atualizações do sistema.

Valor retornado

Retorna o número de bytes lidos com êxito; ou -1 para falha, nesse caso errno será definido como o valor do erro. Uma operação de leitura parcial, incluindo uma leitura de 0 bytes, é considerada um sucesso.

Requisitos de manifesto do aplicativo

Para acessar uma interface I2c, seu aplicativo deve identificá-la no campo I2cMaster do manifesto do aplicativo.