Fork for fixing STM32
Fork of BurstSPI by
BurstSPI_STM32F4.cpp@13:bc069279eb37, 2015-05-16 (annotated)
- Committer:
- Sissors
- Date:
- Sat May 16 11:09:59 2015 +0000
- Revision:
- 13:bc069279eb37
- Child:
- 14:98658a80a698
Added STM F4XX support.
;
; (And seriously STM, it has the same SPI as the already supported L152, but you just had to go ahead and change all your driver files)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sissors | 13:bc069279eb37 | 1 | #if defined(TARGET_STM32F4) |
Sissors | 13:bc069279eb37 | 2 | #include "BurstSPI.h" |
Sissors | 13:bc069279eb37 | 3 | |
Sissors | 13:bc069279eb37 | 4 | void BurstSPI::fastWrite(int data) { |
Sissors | 13:bc069279eb37 | 5 | |
Sissors | 13:bc069279eb37 | 6 | SPI_TypeDef *spi = (SPI_TypeDef *)(_spi.spi); |
Sissors | 13:bc069279eb37 | 7 | // Check if data is transmitted |
Sissors | 13:bc069279eb37 | 8 | while ((spi->SR & SPI_SR_TXE) == 0); |
Sissors | 13:bc069279eb37 | 9 | spi->DR = data; |
Sissors | 13:bc069279eb37 | 10 | } |
Sissors | 13:bc069279eb37 | 11 | |
Sissors | 13:bc069279eb37 | 12 | void BurstSPI::clearRX( void ) { |
Sissors | 13:bc069279eb37 | 13 | //Check if the RX buffer is busy |
Sissors | 13:bc069279eb37 | 14 | SPI_TypeDef *spi = (SPI_TypeDef *)(_spi.spi); |
Sissors | 13:bc069279eb37 | 15 | //While busy, keep checking |
Sissors | 13:bc069279eb37 | 16 | while (spi->SR & SPI_SR_BSY){ |
Sissors | 13:bc069279eb37 | 17 | // Check RX buffer readable |
Sissors | 13:bc069279eb37 | 18 | while ((spi->SR & SPI_SR_RXNE) == 0); |
Sissors | 13:bc069279eb37 | 19 | int dummy = spi->DR; |
Sissors | 13:bc069279eb37 | 20 | } |
Sissors | 13:bc069279eb37 | 21 | } |
Sissors | 13:bc069279eb37 | 22 | #endif |
Sissors | 13:bc069279eb37 | 23 |