user20509: in the datasheet, it's stated that I should apply 32 serial clocks to get the 32 bits of data. How can I program this is Arduino? 

user19409: Sparkfun has a good explaination of what SPI is:
https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi
The Arduino IDE has a SPI library that comes with the IDE.
http://www.arduino.cc/en/Reference/SPI
The library comes with two examples:
Using SPI to read a Barometric Pressure Sensor
Controlling a Digital Potentiometer Using SPI

user11763: 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) << 8;
val |= (uint32_t)SPI.transfer(0xff) << 16;
val |= (uint32_t)SPI.transfer(0xff) << 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().

20509: <p>in the datasheet, it's stated that I should apply 32 serial clocks to get the 32 bits of data. How can I program this is Arduino? </p>
 19409: <p>Sparkfun has a good explaination of what SPI is:<br>
<a href="https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi" rel="nofollow">https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi</a></p>

<p>The Arduino IDE has a SPI library that comes with the IDE.<br>
<a href="http://www.arduino.cc/en/Reference/SPI" rel="nofollow">http://www.arduino.cc/en/Reference/SPI</a></p>

<p>The library comes with two examples:<br>
<a href="http://www.arduino.cc/en/Tutorial/BarometricPressureSensor" rel="nofollow">Using SPI to read a Barometric Pressure Sensor</a><br>
<a href="http://www.arduino.cc/en/Tutorial/DigitalPotControl" rel="nofollow">Controlling a Digital Potentiometer Using SPI</a></p>
 11763: <p>You call <code>SPI.transfer()</code> four times, each time saving the returned value to a variable after proper bit shifting.</p>

<pre><code>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;
</code></pre>

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

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