From c982426fd492b8645a04698f5a2b24e242902100 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Wed, 20 Feb 2013 21:09:15 +0100 Subject: Add SPI_t::transfer_byte(). --- spi/spi.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spi/spi.h b/spi/spi.h index 9f9cf63..b6b0a90 100644 --- a/spi/spi.h +++ b/spi/spi.h @@ -1,6 +1,8 @@ #ifndef SPI_H #define SPI_H +#include + struct SPI_reg_t { volatile uint32_t CR1; volatile uint32_t CR2; @@ -18,6 +20,16 @@ class SPI_t { SPI_reg_t& reg; SPI_t(uint32_t reg_addr) : reg(*(SPI_reg_t*)reg_addr) {} + + uint8_t transfer_byte(uint8_t out = 0) { + reg.DR = out; + + while(!(reg.SR & 0x01)) { + Thread::yield(); + } + + return reg.DR; + } }; #if defined(STM32F1) -- cgit v1.2.3