Wire: if we are reading only one byte, do not send empty read command
This commit is contained in:
parent
917a4fd6f0
commit
04e0902ca6
@ -267,6 +267,7 @@ i2c_err_t i2cRead(i2c_t * i2c, uint16_t address, bool addr_10bit, uint8_t * data
|
|||||||
i2cResetFiFo(i2c);
|
i2cResetFiFo(i2c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(willRead){
|
||||||
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_READ, willRead, false, false, false);
|
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_READ, willRead, false, false, false);
|
||||||
if((len - willRead) > 1) {
|
if((len - willRead) > 1) {
|
||||||
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_END, 0, false, false, false);
|
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_END, 0, false, false, false);
|
||||||
@ -277,6 +278,13 @@ i2c_err_t i2cRead(i2c_t * i2c, uint16_t address, bool addr_10bit, uint8_t * data
|
|||||||
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_STOP, 0, false, false, false);
|
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_STOP, 0, false, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
willRead++;
|
||||||
|
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_READ, 1, true, false, false);
|
||||||
|
if(sendStop) {
|
||||||
|
i2cSetCmd(i2c, cmdIdx++, I2C_CMD_STOP, 0, false, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Clear Interrupts
|
//Clear Interrupts
|
||||||
i2c->dev->int_clr.val = 0xFFFFFFFF;
|
i2c->dev->int_clr.val = 0xFFFFFFFF;
|
||||||
|
Loading…
Reference in New Issue
Block a user