uint8_t spi_transfer(uint8_t data) { SPI_CHECK_ENABLED_RESP(SPI2); //check if spi is enabled SPI_WAIT(SPI2); SPI2->DR = data; SPI_WAIT(SPI2); loop_until_bit_is_set(SPI2->SR,SPI_SR_RXNE); //wait to recieve data return SPI2->DR; }
uint8_t SPI_Send(SPI_TypeDef* SPIx, uint8_t data) { /* Check if SPI is enabled */ SPI_CHECK_ENABLED_RESP(SPIx, 0); /* Wait for previous transmissions to complete if DMA TX enabled for SPI */ SPI_WAIT(SPIx); /* Fill output buffer with data */ //SPIx->DR = data; SPI_SendData8(SPIx, data); /* Wait for transmission to complete */ SPI_WAIT(SPIx); /* Return data from buffer */ //return SPIx->DR; return SPI_ReceiveData8(SPIx); }