SPI.transfer(buffer, size) allows to write more than two bytes, but apparently there is no equivalence for reading data. Is it possible to do that using SPI library and Arduino UNO?
You can just call SPI.transfer twice and shift the bits:
uint16_t value = SPI.transfer(0) << 8;
value |= SPI.transfer(0);
Or you can call SPI.transfer16, a function that is new as of IDE 1.6:
uint16_t value = SPI.transfer16(0);
First of all thanks for your response, but it does not work in my case. If SPI.transfer16(0), or SPI.transfer(0), is used, the command "0" is sent again to the peripheral device.
I think it would be necessary for multibyte transfer, as it seems can be done in DUE, keeping the chip select asserted (low) between every byte by setting the transferMode to SPI_CONTINUE in the SPI.transfer call, and in the last byte, deasserting the chip select (set it high) by setting the transferMode parameter to SPI_LAST in the SPI.transfer call.