class::hal::Spi
class hal::Spi
: public hal::Periph< spi_info_t, spi_attr_t, SpiAttributes, 's'>
This class gives access to a SPI port.
#include <sapi/hal.hpp>
int main(int argc, char * argv[]){
char buffer[16];
Spi spi(0); //access to SPI port 0
spi.init(); //init SPI with default settings from BSP
spi.read(buffer, 16); //read 16 bytes from the SPI
spi.close(); //close the SPI (power it off)
return 0;
}
Summary
Spi(
port_t port
)
int get_info()
SpiInfo get_info() const
int init(
u32 o_flags,
u32 freq,
u32 width,
const spi_pin_assignment_t * pin_assignment
)
int initialize(
u32 o_flags,
u32 freq,
u32 width,
const spi_pin_assignment_t * pin_assignment
)
int initialize()
int initialize()
int set_attr(
u32 o_flags,
u32 freq,
u32 width,
const spi_pin_assignment_t * pin_assignment
) const
int swap(
int byte
) const
int transfer(
const arg::SourceBuffer write_data,
arg::DestinationBuffer read_data,
arg::Size nbytes
)
enum spi_flags
Members
Spi(
port_t port
)
Constructs a SPI object using port.
int get_info()
Gets the peripheral info.
Parameters
info
A reference to the info object that will be written.
Returns
Zero on success, less than one for an error
SpiInfo get_info() const
int init(
u32 o_flags,
u32 freq,
u32 width,
const spi_pin_assignment_t * pin_assignment
)
int initialize(
u32 o_flags,
u32 freq,
u32 width,
const spi_pin_assignment_t * pin_assignment
)
int initialize()
Initializes the hardware using the default attributes.
Returns
Less than zero on an error.
The system should set the error number to ENOSYS if no default attributes are provided.
int initialize()
Initializes the peripheral using the provided attributes
int set_attr(
u32 o_flags,
u32 freq,
u32 width,
const spi_pin_assignment_t * pin_assignment
) const
int swap(
int byte
) const
swap a byte on the SPI bus
int transfer(
const arg::SourceBuffer write_data,
arg::DestinationBuffer read_data,
arg::Size nbytes
)
enum spi_flags
IS_FORMAT_SPI
See SPI_FLAG_IS_FORMAT_SPIIS_FORMAT_TI
See SPI_FLAG_IS_FORMAT_TIIS_FORMAT_MICROWIRE
See SPI_FLAG_IS_FORMAT_MICROWIREIS_MODE0
See SPI_FLAG_IS_MODE0IS_MODE1
See SPI_FLAG_IS_MODE1IS_MODE2
See SPI_FLAG_IS_MODE2IS_MODE3
See SPI_FLAG_IS_MODE3SET_MASTER
See SPI_FLAG_SET_MASTERSET_SLAVE
See SPI_FLAG_SET_SLAVEIS_FULL_DUPLEX
See SPI_FLAG_IS_FULL_DUPLEXIS_HALF_DUPLEX
See SPI_FLAG_IS_HALF_DUPLEX