aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/spi.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmaple/spi.h')
-rw-r--r--libmaple/spi.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/libmaple/spi.h b/libmaple/spi.h
index 457f39b..cde3b42 100644
--- a/libmaple/spi.h
+++ b/libmaple/spi.h
@@ -48,7 +48,7 @@ extern "C" {
#define CR1_BR_PRESCALE_128 0x00000030
#define CR1_BR_PRESCALE_256 0x00000038
-#define CR1_LSBFIRST BIT(7 // data frame format
+#define CR1_LSBFIRST BIT(7) // data frame format
#define CR1_MSTR BIT(2) // master selection
#define CR1_SSM BIT(9) // software slave management
#define CR1_SSI BIT(8) // internal slave select
@@ -98,6 +98,15 @@ void spi_init(uint32 spi_num,
uint32 mode);
void spi_tx(uint32 spi_num, uint8 data);
+static inline uint8 spi_rx(uint32 spi_num) {
+ SPI *spi;
+
+ ASSERT(spi_num == 1 || spi_num == 2);
+ spi = (spi_num == 1) ? (SPI*)SPI1_BASE : (SPI*)SPI2_BASE;
+
+ return spi->DR;
+}
+
#ifdef __cplusplus
}
#endif