mirror of https://github.com/ARMmbed/mbed-os.git
parent
3d72f3dcbf
commit
ad09a83642
|
@ -215,13 +215,19 @@ static inline int ssp_writeable(spi_t *obj) {
|
|||
static inline void ssp_write(spi_t *obj, int value) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
while (!ssp_writeable(obj));
|
||||
SPI_SendData8(spi, (uint8_t)value);
|
||||
if(obj->bits == SPI_DATASIZE_8BIT) // 8 bit mode
|
||||
SPI_SendData8(spi, (uint8_t)value);
|
||||
else
|
||||
SPI_I2S_SendData16(spi, (uint16_t)value);
|
||||
}
|
||||
|
||||
static inline int ssp_read(spi_t *obj) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
while (!ssp_readable(obj));
|
||||
return (int)SPI_ReceiveData8(spi);
|
||||
if(obj->bits == SPI_DATASIZE_8BIT) // 8 bit mode
|
||||
return (int)SPI_ReceiveData8(spi);
|
||||
else // 16 bit mode
|
||||
return (int)SPI_I2S_ReceiveData16(spi);
|
||||
}
|
||||
|
||||
static inline int ssp_busy(spi_t *obj) {
|
||||
|
@ -242,13 +248,19 @@ int spi_slave_receive(spi_t *obj) {
|
|||
|
||||
int spi_slave_read(spi_t *obj) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
return (int)SPI_ReceiveData8(spi);
|
||||
if(obj->bits == SPI_DATASIZE_8BIT) // 8 bit mode
|
||||
return (int)SPI_ReceiveData8(spi);
|
||||
else
|
||||
return (int)SPI_I2S_ReceiveData16(spi);
|
||||
}
|
||||
|
||||
void spi_slave_write(spi_t *obj, int value) {
|
||||
SPI_TypeDef *spi = (SPI_TypeDef *)(obj->spi);
|
||||
while (!ssp_writeable(obj));
|
||||
SPI_SendData8(spi, (uint8_t)value);
|
||||
while (!ssp_writeable(obj));
|
||||
if(obj->bits == SPI_DATASIZE_8BIT) // 8 bit mode
|
||||
SPI_SendData8(spi, (uint8_t)value);
|
||||
else
|
||||
SPI_I2S_SendData16(spi, (uint16_t)value);
|
||||
}
|
||||
|
||||
int spi_busy(spi_t *obj) {
|
||||
|
|
Loading…
Reference in New Issue