How to read data using Arduino SPI
You call SPI.transfer() four times, each time saving the returned value to a variable after proper bit shifting.

uint32_t val;
val = SPI.transfer(0xff);  //0xff is a dummy
val |= (uint32_t)SPI.transfer(0xff) &lt;&lt; 8;
val |= (uint32_t)SPI.transfer(0xff) &lt;&lt; 16;
val |= (uint32_t)SPI.transfer(0xff) &lt;&lt; 24;


I assume the least significant byte is received first. Make sure the SPI mode is the right one, as indicated in your datasheet.

If the slave can't handle being deasserted between bytes (which is what SPI.transfer() will do at the end of the transaction), then you can either try st2000's hardware SPI approach or use bitbanged SPI with shiftIn().