15 #include "Driver_I2C.h" 26 uint16_t slaveAddress,
32 uint8_t cocoBuffer[2] = {0};
35 if ((pCommDrv == NULL) || (pCommandList == NULL))
46 if (ARM_DRIVER_OK != status)
54 status =
Register_I2C_Read(pCommDrv, devInfo, slaveAddress, 0,
sizeof(cocoBuffer), cocoBuffer);
55 if (ARM_DRIVER_OK != status)
59 commandComplete = cocoBuffer[1] & 0x80;
60 if (commandComplete && cocoBuffer[1] & error_mask)
64 }
while (!commandComplete);
65 }
while ((++pCmd)->writeTo != 0xFFFF);
73 uint16_t slaveAddress,
80 if ((pCommDrv == NULL) || (pRegWriteList == NULL))
90 repeatedStart = (pCmd + 1)->writeTo != 0xFFFF;
94 if (ARM_DRIVER_OK != status)
99 }
while (repeatedStart);
107 uint16_t slaveAddress,
115 if (pCommDrv == NULL || pReadList == NULL || pOutBuffer == NULL)
122 for (pBuf = pOutBuffer; pCmd->
numBytes != 0; pCmd++)
125 if (ARM_DRIVER_OK != status)
This structure defines the device specific info required by register I/O.
int32_t Sensor_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registerreadlist_t *pReadList, uint8_t *pOutBuffer)
Read register data from a sensor.
This structure defines the Write command List.
int32_t Register_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t length, uint8_t *pOutBuffer)
The interface function to read a sensor register.
int32_t Register_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t value, uint8_t mask, bool repeatedStart)
The interface function to write a sensor register.
void BOARD_DELAY_ms(uint32_t delay_ms)
Function to insert delays.
This structure defines the Block command List.
int32_t Sensor_I2C_BlockWrite(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registercommandlist_t *pCommandList, uint8_t error_mask)
Write commands to a sensor.
The sensor_drv.h file contains sensor state and error definitions.
typedef int32_t(DATA_FORMAT_Append_t))(void *pData
The interface function to append the data on the formated stream.
int32_t Sensor_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registerwritelist_t *pRegWriteList)
Write register data to a sensor.
int32_t Register_I2C_BlockWrite(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, const uint8_t *pBuffer, uint8_t bytesToWrite)
The interface function to write a sensor register.
This structure defines the Read command List.
const uint8_t * pWriteBuffer
The sensor_io_i2c.h file declares low-level interface functions for reading and writing sensor regist...