Guest User

Untitled

a guest
Oct 23rd, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. #define SPIx SPI2
  2. #define SPIx_CLK_ENABLE() __HAL_RCC_SPI2_CLK_ENABLE()
  3. #define SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
  4. #define SPIx_NSS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
  5. #define SPIx_MISO_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
  6. #define SPIx_MOSI_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
  7. #define SPIx_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
  8.  
  9. #define SPIx_FORCE_RESET() __HAL_RCC_SPI2_FORCE_RESET()
  10. #define SPIx_RELEASE_RESET() __HAL_RCC_SPI2_RELEASE_RESET()
  11.  
  12. #define SPIx_SCK_PIN GPIO_PIN_12 // D13
  13. #define SPIx_SCK_GPIO_PORT GPIOA
  14. #define SPIx_SCK_AF GPIO_AF5_SPI2
  15. #define SPIx_MISO_PIN GPIO_PIN_14 // D12
  16. #define SPIx_MISO_GPIO_PORT GPIOB
  17. #define SPIx_MISO_AF GPIO_AF5_SPI2
  18. #define SPIx_MOSI_PIN GPIO_PIN_15 // D11
  19. #define SPIx_MOSI_GPIO_PORT GPIOB
  20. #define SPIx_MOSI_AF GPIO_AF5_SPI2
  21. #define SPIx_NSS_PIN GPIO_PIN_11 // D10
  22. #define SPIx_NSS_GPIO_PORT GPIOA
  23. #define SPIx_NSS_AF GPIO_AF5_SPI2
  24. #define SPIx_CS_PIN GPIO_PIN_6 // D9
  25. #define SPIx_CS_GPIO_PORT GPIOH
  26.  
  27. #define SPIx_IRQn SPI2_IRQn
  28. #define SPIx_IRQHandler SPI2_IRQHandler
  29.  
  30. GPIO_InitTypeDef GPIO_InitStruct;
  31. GPIO_InitTypeDef GPIO_InitStruct1;
  32.  
  33. SPIx_SCK_GPIO_CLK_ENABLE();
  34. SPIx_MISO_GPIO_CLK_ENABLE();
  35. SPIx_MOSI_GPIO_CLK_ENABLE();
  36. SPIx_CS_GPIO_CLK_ENABLE();
  37.  
  38. GPIO_InitStruct.Pin = SPIx_SCK_PIN;
  39. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  40. GPIO_InitStruct.Pull = GPIO_PULLDOWN;
  41. GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  42. GPIO_InitStruct.Alternate = SPIx_SCK_AF;
  43. HAL_GPIO_Init(SPIx_SCK_GPIO_PORT, &GPIO_InitStruct);
  44.  
  45. GPIO_InitStruct.Pull = GPIO_NOPULL;
  46. GPIO_InitStruct.Pin = SPIx_MISO_PIN;
  47. GPIO_InitStruct.Alternate = SPIx_MISO_AF;
  48. HAL_GPIO_Init(SPIx_MISO_GPIO_PORT, &GPIO_InitStruct);
  49.  
  50. GPIO_InitStruct.Pull = GPIO_PULLUP;
  51. GPIO_InitStruct.Pin = SPIx_MOSI_PIN;
  52. GPIO_InitStruct.Alternate = SPIx_MOSI_AF;
  53. HAL_GPIO_Init(SPIx_MOSI_GPIO_PORT, &GPIO_InitStruct);
  54.  
  55. GPIO_InitStruct1.Pin = SPIx_CS_PIN;
  56. GPIO_InitStruct1.Mode = GPIO_MODE_OUTPUT_PP;
  57. GPIO_InitStruct1.Speed = GPIO_SPEED_HIGH;
  58. GPIO_InitStruct1.Pull = GPIO_PULLUP;
  59. HAL_GPIO_Init(SPIx_CS_GPIO_PORT, &GPIO_InitStruct1);
  60.  
  61. SPIx_FORCE_RESET();
  62. SPIx_RELEASE_RESET();
  63. SPIx_CLK_ENABLE();
  64.  
  65. SpiHandle.Instance = SPIx;
  66. SpiHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
  67. SpiHandle.Init.Direction = SPI_DIRECTION_2LINES;
  68. SpiHandle.Init.CLKPhase = SPI_PHASE_1EDGE;
  69. SpiHandle.Init.CLKPolarity = SPI_POLARITY_LOW;
  70. SpiHandle.Init.DataSize = SPI_DATASIZE_8BIT;
  71. SpiHandle.Init.FirstBit = SPI_FIRSTBIT_MSB;
  72. SpiHandle.Init.TIMode = SPI_TIMODE_DISABLE;
  73. SpiHandle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  74. SpiHandle.Init.NSS = SPI_NSS_SOFT;
  75. SpiHandle.Init.Mode = SPI_MODE_MASTER;
  76. HAL_Delay(5);
  77.  
  78. if(HAL_SPI_Init(&SpiHandle) != HAL_OK)
  79. {
  80. Error_Handler();
  81. }
Add Comment
Please, Sign In to add comment