AFAICT, su código no llega lo suficientemente lejos como para demostrar que está recuperando nada del BMX_055. Por lo tanto, no hay pruebas de que el circuito sea correcto, así que considere que puede estar roto.
Hay varios modos SPI diferentes (combinación de reloj y estado MOSI de datos), y otras combinaciones de señales de habilitación. Puede ser difícil ver qué funciona, si es que funciona, si intenta utilizar el periférico SPI. Si tiene acceso a un osciloscopio, puede verificar que la IMU de Bosch BMX_055 está devolviendo los datos sin tener todo el código correcto (observando el pin MISO). Si no tiene acceso a un osciloscopio o analizador lógico (y sabe cómo usarlo), creo que su mejor táctica es ignorar el hardware periférico SPI al principio y usar "bit banging".
Cuando un periférico de hardware SPI 'correcto' no funciona la primera vez, o muy fácilmente, entonces conduzca las señales utilizando pines y software GPIO (la técnica llamada 'Bit Banging' y aparecerá en un buscador web).
Entonces conduzca el reloj, MOSI y Habilitar (posiblemente sea necesario) con el equivalente de digitalWrite, y obtenga la señal MISO con el equivalente de digitalRead. Intenta mantenerlo lo más simple posible.
Encontrará varios ejemplos en la web si busca 'SPI Bit-Banging'.
Encontré software de codificación SPI
SPI de software para PIC
y una pregunta de intercambio de pila ¿Qué es el bit banging?
Aquí hay una copia del pseudocódigo de la respuesta de pila de electrónica :
Make Slave Select low
Short delay
Do 8 times
Make the SCK (Serial Clock) pin low
Make the MOSI (Master-Out-Slave-In) pin high or low depending on bit 7 of the data
Add brief delay
Make the SCK output high
Read MISO (Master-In-Slave-Out) pin
Shift received data left, and shift the bit just read in as bit 0
Add brief delay
Shift the data byte 1 bit left
Make Slave Select high again
Deberá leer y comprender la hoja de datos de la IMU Bosch BMX_055 para asegurarse de que está hablando correctamente porque hay varios "modos" de SPI diferentes. Los modos dependen del dispositivo esclavo y son la relación entre el estado del reloj y los datos.
Una vez que haya funcionado la electrónica y las señales, intente hacer funcionar el periférico SPI.