Для начала попробовать проверить работу SPI, постоянно вычитывая WHO_AM_I - 0x0F
У меня на пинах 5,6,7 подтяжка на землю стоит, и SPI SPI_CPHA_1Edge и SPI_CPOL_Low
CODE
signed short value;
unsigned char *valueL = (unsigned char *) (&value);
unsigned char *valueH = ((unsigned char *) (&value) + 1);
*valueL = SPI.CommandReceived[5];
*valueH = SPI.CommandReceived[6];
if ((value & (1 << 15)) != 0) {
MEMS.Z = (value >> 4) | 0xF000;
}
else {
MEMS.Z = value >> 4;
}