Advertisement
Guest User

SPI STM

a guest
Mar 26th, 2014
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.81 KB | None | 0 0
  1. //note: I know that names of functions are messed up, I did it on purpose.
  2. //note: no SPL... no exceptions
  3.  
  4. void SPI3Init()
  5. {
  6.  
  7.     RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN;
  8.     RCC->APB2ENR |= RCC_APB2ENR_SPI1EN;
  9. //  GPIOB->MODER |= (2<<(3*2)) | (2<<(4*2)) | (2<<(5*2));
  10.     GPIOA->MODER |= (2<<(MOSI1*2)) | (2<<(MISO1*2)) | (2<<(SCK1*2));
  11. //  GPIOB->AFR[0]|= (spin<<(3*4)) |(spin<<(4*4)) |(spin<<(5*4));
  12.     GPIOA->AFR[0]|= (5<<(MOSI1*4)) | (5<<(MISO1*4)) | (5<<(SCK1*4));
  13.     SPI1->CR1 |= SPI_BRPsc_8 | SPI_CR1_SSM | SPI_CR1_SSI;// | SPI_CR1_LSBFIRST;
  14.     SPI1->CR1 |= SPI_CR1_SPE | SPI_CR1_MSTR;
  15.  
  16. }
  17.  
  18. //SPI1_MISO -> PA6
  19. //SPI1_MOSI -> PA7
  20. //SPI1_SCK  -> PA5
  21.  
  22. uint8_t SPI3_send(unsigned char n)
  23. {
  24.     SPI1->DR = n;
  25.     while(!(SPI1->SR & (SPI_SR_TXE)));
  26.     while(!(SPI1->SR & (SPI_SR_RXNE)));
  27.     return (SPI1->DR);
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement