浏览代码

Fix return value of i2c_readReg and i2c_receive (#5410)

zvecr 6 年之前
父节点
当前提交
e0a03bfa6c
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/avr/i2c_master.c

+ 2 - 2
drivers/avr/i2c_master.c

@@ -140,7 +140,7 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16
 
   i2c_stop();
 
-  return status;
+  return (status < 0) ? status : I2C_STATUS_SUCCESS;
 }
 
 i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout) {
@@ -188,7 +188,7 @@ i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16
 error:
   i2c_stop();
 
-  return status;
+  return (status < 0) ? status : I2C_STATUS_SUCCESS;
 }
 
 void i2c_stop(void) {