25#include <interfaces/endianness.h>
42 uint8_t data = slave.
bus.
read();
188 uint8_t data = slave.
bus.
read();
205 data = swapBytes16(data);
221 data = swapBytes32(data) >> 8;
237 data = swapBytes32(data) >> 8;
Interface for low level access of a SPI bus as a master.
virtual uint16_t transfer16(uint16_t data)=0
Full duplex transmission of 16 bits on the bus.
virtual void write24(uint32_t data)=0
Writes 24 bits to the bus.
virtual void write16(uint16_t data)=0
Writes 16 bits to the bus.
virtual void write32(uint32_t data)=0
Writes 32 bits to the bus.
virtual uint32_t transfer24(uint32_t data)=0
Full duplex transmission of 24 bits on the bus.
virtual uint16_t read16()=0
Reads 16 bits from the bus.
virtual void deselect(GpioType cs)=0
Deselects the slave.
virtual uint32_t read24()=0
Reads 24 bits from the bus.
virtual uint8_t read()=0
Reads 8 bits from the bus.
virtual void select(GpioType cs)=0
Selects the slave.
virtual uint32_t read32()=0
Reads 32 bits from the bus.
virtual void write(uint8_t data)=0
Writes 8 bits to the bus.
virtual uint32_t transfer32(uint32_t data)=0
Full duplex transmission of 32 bits on the bus.
virtual uint8_t transfer(uint8_t data)=0
Full duplex transmission of 8 bits on the bus.
virtual void configure(SPIBusConfig config)=0
Configures the bus with the provided configuration parameters.
virtual uint32_t read32()
Reads 32 bits from the bus.
void write16(uint16_t data)
Writes a single half word to the bus.
void write(uint8_t data)
Writes a single byte to the bus.
uint8_t readRegister(uint8_t reg)
Reads an 8 bit register.
void writeRegister32(uint8_t reg, uint32_t data)
Writes a 32 bit register.
uint8_t read()
Reads a single byte from the bus.
void writeRegisters(uint8_t reg, uint8_t *data, size_t size)
Writes multiple bytes starting from the specified register.
virtual void write32(uint32_t data)
Writes 32 bits to the bus.
uint16_t transfer16(uint16_t data)
Full duplex transmission of one half word on the bus.
virtual uint32_t read24()
Reads 24 bits from the bus.
void writeRegister24(uint8_t reg, uint32_t data)
Writes a 24 bit register.
uint32_t readRegister32(uint8_t reg)
Reads a 32 bit register.
void readRegisters(uint8_t reg, uint8_t *data, size_t size)
Reads multiple bytes starting from the specified register.
void writeRegister(uint8_t reg, uint8_t data)
Writes an 8 bit register.
SPIBusInterface & getBus()
Returns the underlying bus for low level access.
virtual void write24(uint32_t data)
Writes 24 bits to the bus.
SPITransaction(const SPISlave &slave)
Instantiates a new SPITransaction, configuring the bus with the provided parameters.
virtual uint32_t transfer24(uint32_t data)
Full duplex transmission of 24 bits on the bus.
uint32_t readRegister24(uint8_t reg)
Reads a 24 bit register.
void writeRegister16(uint8_t reg, uint16_t data)
Writes a 16 bit register.
uint8_t transfer(uint8_t data)
Full duplex transmission of one byte on the bus.
uint16_t readRegister16(uint8_t reg)
Reads a 16 bit register.
virtual uint32_t transfer32(uint32_t data)
Full duplex transmission of 32 bits on the bus.
uint16_t read16()
Reads a single half word from the bus.
@ NORMAL
Normal write bit settings (0 for write, 1 for reads)
@ INVERTED
Inverted write bit settings (1 for write, 0 for reads)
Driver for the VN100S IMU.
SPI::Order byteOrder
MSByte or LSByte first.
SPI::WriteBit writeBit
How long to wait before starting a tranmission after CS is set (us)
Contains information about a single SPI slave device.
GpioType cs
Chip select pin.
SPIBusInterface & bus
Bus on which the slave is connected.