Serial Peripheral Interface communication API
Available signals and pins:
picoCIAA | Signal |
P6_11 | SPI0_MOSI |
P6_12 | SPI0_SCK |
P6_14 | SPI0_MISO |
P6_15 | SPI1_MOSI |
P6_16 | SPI1_SCK |
P6_18 | SPI1_MISO |
- Warning
- SD interface uses SPI0, do not use SD API and SPI API with SPI0 at the same time!
available SPI ports
Enumerator |
---|
SPI0 |
SPI0 interface
|
SPI1 |
SPI1 interface
|
void picoSPIInit |
( |
picoSPIPort |
p, |
|
|
uint32_t |
clock_rate |
|
) |
| |
initialize SPI port
- Parameters
-
p | port number, SPI0 or SPI1 |
clock_rate | SPI clock rate |
int32_t picoSPITransfer |
( |
picoSPIPort |
p, |
|
|
picoPin_e |
ssel, |
|
|
uint8_t * |
txbuf, |
|
|
uint8_t * |
rxbuf, |
|
|
int32_t |
len |
|
) |
| |
transmit and receive data through SPI port (full-duplex)
- Parameters
-
p | port number, SPI0 or SPI1 |
ssel | digital output to use as slave select, user must previously configure it with picoConfigDigitalOutput and initial value 1 (logic high). If ssel is set as PICOPIN_COUNT, user must take control of SSEL signal. |
txbuf | transmit buffer |
rxbuf | receive buffer |
len | transfer length in bytes |
- Returns
- transfer status, -1 on error