diff --git a/left/src/init_peripherals.c b/left/src/init_peripherals.c index 2a6216d..2545273 100644 --- a/left/src/init_peripherals.c +++ b/left/src/init_peripherals.c @@ -20,7 +20,7 @@ static void i2cSlaveCallback(I2C_Type *base, i2c_slave_transfer_t *xfer, void *u case kI2C_SlaveTransmitEvent: SlaveTxHandler(); xfer->data = (uint8_t*)&TxMessage; - xfer->dataSize = TxMessage.length+3; + xfer->dataSize = TxMessage.length + I2C_MESSAGE_HEADER_LENGTH; break; case kI2C_SlaveReceiveEvent: if (prevEvent == kI2C_SlaveReceiveEvent) { @@ -36,7 +36,7 @@ static void i2cSlaveCallback(I2C_Type *base, i2c_slave_transfer_t *xfer, void *u case kI2C_SlaveCompletionEvent: if (prevEvent == kI2C_SlaveReceiveEvent) { ((uint8_t*)&RxMessage)[rxMessagePos] = byteIn; - RxMessage.length = rxMessagePos-3; + RxMessage.length = rxMessagePos - I2C_MESSAGE_HEADER_LENGTH; SlaveRxHandler(); } break; diff --git a/shared/slave_protocol.h b/shared/slave_protocol.h index feec746..15008e1 100644 --- a/shared/slave_protocol.h +++ b/shared/slave_protocol.h @@ -4,7 +4,8 @@ // Macros: #define I2C_MESSAGE_MAX_LENGTH 255 - #define I2C_BUFFER_MAX_LENGTH (I2C_MESSAGE_MAX_LENGTH + 3) + #define I2C_MESSAGE_HEADER_LENGTH 3 + #define I2C_BUFFER_MAX_LENGTH (I2C_MESSAGE_HEADER_LENGTH + I2C_MESSAGE_MAX_LENGTH) // Typedefs: