41 #include "Driver_I2C.h" 52 uint16_t slaveAddress,
58 uint8_t cocoBuffer[2] = {0};
61 if ((pCommDrv == NULL) || (pCommandList == NULL))
72 if (ARM_DRIVER_OK != status)
80 status =
Register_I2C_Read(pCommDrv, devInfo, slaveAddress, 0,
sizeof(cocoBuffer), cocoBuffer);
81 if (ARM_DRIVER_OK != status)
85 commandComplete = cocoBuffer[1] & 0x80;
86 if (commandComplete && cocoBuffer[1] & error_mask)
90 }
while (!commandComplete);
91 }
while ((++pCmd)->writeTo != 0xFFFF);
99 uint16_t slaveAddress,
106 if ((pCommDrv == NULL) || (pRegWriteList == NULL))
116 repeatedStart = (pCmd + 1)->writeTo != 0xFFFF;
120 if (ARM_DRIVER_OK != status)
125 }
while (repeatedStart);
133 uint16_t slaveAddress,
141 if (pCommDrv == NULL || pReadList == NULL || pOutBuffer == NULL)
148 for (pBuf = pOutBuffer; pCmd->
numBytes != 0; pCmd++)
151 if (ARM_DRIVER_OK != status)
The sensor_drv.h file contains sensor state and error definitions.
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.
void BOARD_DELAY_ms(uint32_t delay_ms)
Function to insert delays.
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.
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.
const uint8_t * pWriteBuffer
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.
This structure defines the Write command List.
This structure defines the Read command List.
This structure defines the device specific info required by register I/O.
This structure defines the Block command List.
The sensor_io_i2c.h file declares low-level interface functions for reading and writing sensor regist...
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.