In static void i2c_transferbytes(i2c_msg_t *pstmsg) there are 2 if conditions that have a single =.
if ((pstmsg->direct == I2C_M_WRITE) && (pstmsg->event = EV_I2C_TXF_INT)) {
and
} else if ((pstmsg->direct == I2C_M_READ) && (pstmsg->event = EV_I2C_RXF_INT)){
This looks suspiciously like they should be == equality tests.
In static void i2c_transferbytes(i2c_msg_t *pstmsg) there are 2 if conditions that have a single =.
and
This looks suspiciously like they should be == equality tests.