diff --git a/source/Core/BSP/Pinecilv2/I2C_Wrapper.cpp b/source/Core/BSP/Pinecilv2/I2C_Wrapper.cpp index ce80e330..e3112b05 100644 --- a/source/Core/BSP/Pinecilv2/I2C_Wrapper.cpp +++ b/source/Core/BSP/Pinecilv2/I2C_Wrapper.cpp @@ -40,7 +40,9 @@ bool FRToSI2C::Mem_Read(uint16_t DevAddress, uint16_t read_address, uint8_t *p_b i2cCfg.data = p_buffer; i2cCfg.subAddrSize = 1; // one byte address +taskENTER_CRITICAL(); err = I2C_MasterReceiveBlocking(I2C0_ID, &i2cCfg); + taskEXIT_CRITICAL(); bool res = err == SUCCESS; if (!res) { I2C_Unstick(); @@ -61,8 +63,9 @@ bool FRToSI2C::Mem_Write(uint16_t DevAddress, uint16_t MemAddress, uint8_t *p_bu i2cCfg.dataSize = number_of_byte; i2cCfg.data = p_buffer; i2cCfg.subAddrSize = 1; // one byte address - +taskENTER_CRITICAL(); err = I2C_MasterSendBlocking(I2C0_ID, &i2cCfg); + taskEXIT_CRITICAL(); bool res = err == SUCCESS; if (!res) { I2C_Unstick();