/* Reads a block of data from the L3GD20.  */
void L3GD20_Read(uint8_t *pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead)
/* Reads a block of data from the L3GD20.  */
void L3GD20_Read(uint8_t *pBuffer, uint8_t ReadAddr, uint16_t NumByteToRead)
{  
  if(NumByteToRead > 0x01)
  {
    ReadAddr |= (uint8_t)(READWRITE_CMD | MULTIPLEBYTE_CMD);
  }
  else
  {
    ReadAddr |= (uint8_t)READWRITE_CMD;
  }
  L3GD20_CS_LOW();
  L3GD20_SendByte(ReadAddr);
  while(NumByteToRead > 0x00)
  {
    *pBuffer = L3GD20_SendByte(DUMMY_BYTE);
    NumByteToRead--;
    pBuffer++;
  } 
  L3GD20_CS_HIGH();
}