Cor is correct. Renan, you need to check how your process the data. You can also print the 6 bytes (DATAX0, DATAX1, DATAY0, DATAY1, DATAZ0, DATAZ1) to check.
The data processing below is recommended.
unsigned char buf[6];
signed short intAccX, AccY, AccZ;
xl345Read(6, XL345_DATAX0, buf);
//Read DATAX/Y/Z registers
AccX = (buf[1] << 8) | buf[0];
AccY = (buf[3] << 8) | buf[2];
AccZ = (buf[5] << 8) | buf[4];
Upload(XL345, AccX, AccY, AccZ);
It can be optimized as below:
signed short intAccBuffer[3];
xl345Read(6, XL345_DATAX0, AccBuffer);
Upload(XL345, AccBuffer[0], AccBuffer[1], AccBuffer[2]);
BR
Neil