Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define SPIx SPI2
- #define SPIx_CLK_ENABLE() __HAL_RCC_SPI2_CLK_ENABLE()
- #define SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
- #define SPIx_NSS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
- #define SPIx_MISO_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
- #define SPIx_MOSI_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
- #define SPIx_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOH_CLK_ENABLE()
- #define SPIx_FORCE_RESET() __HAL_RCC_SPI2_FORCE_RESET()
- #define SPIx_RELEASE_RESET() __HAL_RCC_SPI2_RELEASE_RESET()
- #define SPIx_SCK_PIN GPIO_PIN_12 // D13
- #define SPIx_SCK_GPIO_PORT GPIOA
- #define SPIx_SCK_AF GPIO_AF5_SPI2
- #define SPIx_MISO_PIN GPIO_PIN_14 // D12
- #define SPIx_MISO_GPIO_PORT GPIOB
- #define SPIx_MISO_AF GPIO_AF5_SPI2
- #define SPIx_MOSI_PIN GPIO_PIN_15 // D11
- #define SPIx_MOSI_GPIO_PORT GPIOB
- #define SPIx_MOSI_AF GPIO_AF5_SPI2
- #define SPIx_NSS_PIN GPIO_PIN_11 // D10
- #define SPIx_NSS_GPIO_PORT GPIOA
- #define SPIx_NSS_AF GPIO_AF5_SPI2
- #define SPIx_CS_PIN GPIO_PIN_6 // D9
- #define SPIx_CS_GPIO_PORT GPIOH
- #define SPIx_IRQn SPI2_IRQn
- #define SPIx_IRQHandler SPI2_IRQHandler
- GPIO_InitTypeDef GPIO_InitStruct;
- GPIO_InitTypeDef GPIO_InitStruct1;
- SPIx_SCK_GPIO_CLK_ENABLE();
- SPIx_MISO_GPIO_CLK_ENABLE();
- SPIx_MOSI_GPIO_CLK_ENABLE();
- SPIx_CS_GPIO_CLK_ENABLE();
- GPIO_InitStruct.Pin = SPIx_SCK_PIN;
- GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
- GPIO_InitStruct.Alternate = SPIx_SCK_AF;
- HAL_GPIO_Init(SPIx_SCK_GPIO_PORT, &GPIO_InitStruct);
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Pin = SPIx_MISO_PIN;
- GPIO_InitStruct.Alternate = SPIx_MISO_AF;
- HAL_GPIO_Init(SPIx_MISO_GPIO_PORT, &GPIO_InitStruct);
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Pin = SPIx_MOSI_PIN;
- GPIO_InitStruct.Alternate = SPIx_MOSI_AF;
- HAL_GPIO_Init(SPIx_MOSI_GPIO_PORT, &GPIO_InitStruct);
- GPIO_InitStruct1.Pin = SPIx_CS_PIN;
- GPIO_InitStruct1.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct1.Speed = GPIO_SPEED_HIGH;
- GPIO_InitStruct1.Pull = GPIO_PULLUP;
- HAL_GPIO_Init(SPIx_CS_GPIO_PORT, &GPIO_InitStruct1);
- SPIx_FORCE_RESET();
- SPIx_RELEASE_RESET();
- SPIx_CLK_ENABLE();
- SpiHandle.Instance = SPIx;
- SpiHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32;
- SpiHandle.Init.Direction = SPI_DIRECTION_2LINES;
- SpiHandle.Init.CLKPhase = SPI_PHASE_1EDGE;
- SpiHandle.Init.CLKPolarity = SPI_POLARITY_LOW;
- SpiHandle.Init.DataSize = SPI_DATASIZE_8BIT;
- SpiHandle.Init.FirstBit = SPI_FIRSTBIT_MSB;
- SpiHandle.Init.TIMode = SPI_TIMODE_DISABLE;
- SpiHandle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
- SpiHandle.Init.NSS = SPI_NSS_SOFT;
- SpiHandle.Init.Mode = SPI_MODE_MASTER;
- HAL_Delay(5);
- if(HAL_SPI_Init(&SpiHandle) != HAL_OK)
- {
- Error_Handler();
- }
Add Comment
Please, Sign In to add comment