( diego | 2016. 12. 28., sze – 23:54 )

A wiringipi forrásában ez az írás függvénye:


/*
* wiringPiSPIDataRW:
* Write and Read a block of data over the SPI bus.
* Note the data ia being read into the transmit buffer, so will
* overwrite it!
* This is also a full-duplex operation.
*********************************************************************************
*/

int wiringPiSPIDataRW (int channel, unsigned char *data, int len)
{
struct spi_ioc_transfer spi ;

channel &= 1 ;

spi.tx_buf = (unsigned long)data ;
spi.rx_buf = (unsigned long)data ;
spi.len = len ;
spi.delay_usecs = spiDelay ;
spi.speed_hz = spiSpeeds [channel] ;
spi.bits_per_word = spiBPW ;

return ioctl (spiFds [channel], SPI_IOC_MESSAGE(1), &spi) ;
}

Tehát én úgy értelmezem, hogy itt megvárja, amig az írásművelet megtörténik, és erről ad egy értéket is. A valóságban a bufferként átadott memóriaterületre írja be a visszatérési értéket.
Kipróbálom a két tippet, a cs0->1 irás előtt, és a sleep-et, hátha...