static inline int ssp_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi); while (!ssp_readable(obj)); if(obj->bits == SPI_DataSize_8b) // 8 bit mode return (int)SPI_ReceiveData8(spi); else // 16 bit mode return (int)SPI_I2S_ReceiveData16(spi); }
int spi_slave_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi); while (!ssp_readable(obj)); if (obj->bits == SPI_DATASIZE_8BIT) { // Force 8-bit access to the data register uint8_t *p_spi_dr = 0; p_spi_dr = (uint8_t *) & (spi->DR); return (int)(*p_spi_dr); } else { return (int)spi->DR; } }
static inline int ssp_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi); while (!ssp_readable(obj)); if (obj->bits <= SPI_DATASIZE_8BIT) { // force 8-bit access the data register due to SPI data buffer in this device uint8_t *p_spi_dr = 0; p_spi_dr = (uint8_t *) & (spi->DR); return (int)(*p_spi_dr); } else { return (int)spi->DR; } }
int spi_slave_read(spi_t *obj) { SPI_TypeDef *spi = SPI_INST(obj); struct spi_s *spiobj = SPI_S(obj); SPI_HandleTypeDef *handle = &(spiobj->handle); while (!ssp_readable(obj)); if (handle->Init.DataSize == SPI_DATASIZE_8BIT) { // Force 8-bit access to the data register uint8_t *p_spi_dr = 0; p_spi_dr = (uint8_t *) & (spi->DR); return (int)(*p_spi_dr); } else { return (int)spi->DR; } }
int spi_slave_receive(spi_t *obj) { return (ssp_readable(obj) && !ssp_busy(obj)) ? (1) : (0); };
static inline int ssp_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi); while (!ssp_readable(obj)); return (int)SPI_I2S_ReceiveData(spi); }
int spi_slave_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi); while (!ssp_readable(obj)); return (int)spi->DR; }
static inline int ssp_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi); while (!ssp_readable(obj)); return (int)spi->DR; }
static inline int ssp_read(spi_t *obj) { while (!ssp_readable(obj)); return obj->spi->DR; }
int spi_slave_receive(spi_t *obj) { return (ssp_readable(obj) ? 1 : 0); };
static inline int ssp_read(spi_t *obj) { SPI_TypeDef *spi = (SPI_TypeDef *)SpiHandle[obj->spi.module].Instance; while (!ssp_readable(obj)); return (int)spi->DR; }