Hi adityaseelam,
I upload example code on STM32 for your reference. You can strictly refer to the process of the example code. uint8_t GTXBuffer[512], GRXBuffer[2048]; int8_t SensorAPI_I2Cx_Read(uint8_t reg_addr, uint8_t *reg_data, uint32_t length, void *intf_ptr) { uint8_t dev_addr = *(uint8_t*)intf_ptr; uint16_t DevAddress = dev_addr << 1;
// send register address HAL_I2C_Master_Transmit(&I2C_HANDLE, DevAddress, ®_addr, 1, BUS_TIMEOUT); HAL_I2C_Master_Receive(&I2C_HANDLE, DevAddress, reg_data, length, BUS_TIMEOUT); return 0; }
int8_t SensorAPI_I2Cx_Write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t length, void *intf_ptr) { uint8_t dev_addr = *(uint8_t*)intf_ptr; uint16_t DevAddress = dev_addr << 1;
GTXBuffer[0] = reg_addr; memcpy(>XBuffer[1], reg_data, length);
// send register address HAL_I2C_Master_Transmit(&I2C_HANDLE, DevAddress, GTXBuffer, length+1, BUS_TIMEOUT); return 0; }
... View more