drivers/hdf_core/framework/model/sensor/driver/common/src/sensor_platform_if.c

参考如上代码

int32_t ReadSensor(struct SensorBusCfg *busCfg, uint16_t regAddr, uint8_t *data, uint16_t dataLen) //可以读取Sensor寄存器的值

 

下面的writeSensor实现没有支持往Sensor寄存器写值

int32_t WriteSensor(struct SensorBusCfg *busCfg, uint8_t *writeData, uint16_t dataLen)
 {
      struct I2cMsg msg[I2C_WRITE_MSG_NUM];
  
      CHECK_NULL_PTR_RETURN_VALUE(busCfg, HDF_FAILURE);
      CHECK_NULL_PTR_RETURN_VALUE(writeData, HDF_FAILURE);
  
      if (busCfg->busType == SENSOR_BUS_I2C) {
          CHECK_NULL_PTR_RETURN_VALUE(busCfg->i2cCfg.handle, HDF_FAILURE);
  
          msg[0].addr = busCfg->i2cCfg.devAddr;
          msg[0].flags = 0;
          msg[0].len = dataLen;
          msg[0].buf = writeData;
  
          if (I2cTransfer(busCfg->i2cCfg.handle, msg, I2C_WRITE_MSG_NUM) != I2C_WRITE_MSG_NUM) {
              HDF_LOGE("%s: i2c[%u] write failed", __func__, busCfg->i2cCfg.busNum);
              return HDF_FAILURE;
          }
  
  #if defined(LOSCFG_DRIVERS_HDF_PLATFORM_SPI) || defined(CONFIG_DRIVERS_HDF_PLATFORM_SPI)
      } else if (busCfg->busType == SENSOR_BUS_SPI) {
          if (SpiWrite(busCfg->spiCfg.handle, writeData, dataLen) != HDF_SUCCESS) {
              HDF_LOGE("%s: spi write failed", __func__);
              return HDF_FAILURE;
          }
  #endif
      }
 
      return HDF_SUCCESS;
 }
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐