shift by 1 bit error in SPI
"Shifted by one bit" is the common symptom of SPI when the wrong clock setup is used.  Either the master and slave disagree on what clock edge data is transferred, or you are starting at the wrong polarity from idle.

The first and obvious thing to do is to transfer a known test byte and look at the resulting chip select, clock, and data lines with a scope.  Now compare that to what the slave device says it needs, and you will probably find a discrepancy.

Unfortunately, all four possible combinations of SPI clock idle polarity and active edge polarity are out there.  You have to carefully read what your slave needs, then carefully read the datasheet of the master to see how to achieve that.