Răsfoiți Sursa

Fix return value of i2c_readReg and i2c_receive (#5410)

zvecr 6 ani în urmă
părinte
comite
e0a03bfa6c
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  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) {