view spi.c @ 69:cf9eb08b8b23

CRC a word at a time rather than the whole block (since we are reading/writing a word at a time).
author Daniel O'Connor <darius@dons.net.au>
date Sun, 14 Apr 2013 22:52:21 +0930
parents 58d76cf522ff
children
line wrap: on
line source

#include <stdint.h>
#include "spi.h"
#include "stm32f10x.h"

uint8_t
SPI_WriteByte(uint8_t out) {
    uint8_t in = 0; 

    /* Wait until the transmit buffer is empty */
    while (SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE) == RESET)
	;
    
    /* Send the byte  */
    SPI_I2S_SendData(SPI1, out); 

    /* Wait until a data is received */
    while (SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE) == RESET)
	;
    
    /* Get the received data */
    in = SPI_I2S_ReceiveData(SPI1); 

    /* Return the shifted data */
    return (in);
}