unkwntech

STM8s SPI Initialisation

Apr 12th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1. void InitSPI()
  2. {
  3.   /*
  4.     Possible Clock Speeds
  5.     SPI_CR1_BR    Clock Speed     Default Result (Fmaster = 16Mhz)
  6.     0 (0x00)      Fmaster / 2     8Mhz
  7.     1 (0x01)      Fmaster / 4     4Mhz
  8.     2 (0x02)      Fmaster / 8     2Mhz
  9.     3 (0x03)      Fmaster / 16    1Mhz
  10.     4 (0x04)      Fmaster / 32    500Khz
  11.     5 (0x05)      Fmaster / 64    250Khz
  12.     6 (0x06)      Fmaster / 128   125Khz
  13.     7 (0x07)      Fmaster / 256   62.5Khz
  14.   */
  15.  
  16.   SPI_CR1_BR = 0;       //Clock Speed, see table above for values
  17.   SPI_CR1_CPOL = 0;     //Clock Idle LOW
  18.   SPI_CR1_CPHA = 1;     //First Clock Edge is data
  19.   SPI_CR1_LSBFIRST = 0; //MSB First
  20.   SPI_CR1_MSTR = 0;     //SPI Slave
  21.   SPI_CR1_SPE = 1;      //Enable SPI
  22.  
  23.   SPI_CR2_SSI = 0;      //Slave Mode, NSS/CS Pin
  24.   SPI_CR2_SSM = 0;      //Software NSS/CS managment disabled
  25.   SPI_CR2_RXONLY = 0;   //Full Duplex TX&RX
  26.   SPI_CR2_CRCNEXT = 0;  //Next value to transmit is not CRC
  27.   SPI_CR2_CRCEN = 1;    //CRC Calculation enabled
  28.   SPI_CR2_BDOE = 0;     //Not Used. Only used when BDM = 1
  29.   SPI_CR2_BDM = 0;          //2 Wire Unidrectional Mode
  30. }
Advertisement
Add Comment
Please, Sign In to add comment