SPI初始化
- void SPI_Init(void)
- {
- /*##-1- Enable peripherals and GPIO Clocks #################################*/
- /* Enable GPIO TX/RX clock */
- SPI_SCK_GPIO_CLK_ENABLE();
- SPI_MISO_GPIO_CLK_ENABLE();
- SPI_MOSI_GPIO_CLK_ENABLE();
- SPI_NSS_GPIO_CLK_ENABLE();
- SPI_RESET_GPIO_CLK_ENABLE();
- /*##-2- Configure peripheral GPIO ##########################################*/
- /* SPI SCK GPIO pin configuration */
- GPIO_InitTypeDef GPIO_InitStruct;
-
- GPIO_InitStruct.Pin = SPI_SCK_PIN;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- //GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- HAL_GPIO_Init(SPI_SCK_GPIO_PORT, &GPIO_InitStruct);
- HAL_GPIO_WritePin(SPI_SCK_GPIO_PORT, SPI_SCK_PIN, GPIO_PIN_SET);
- /* SPI MISO GPIO pin configuration */
- GPIO_InitStruct.Pin = SPI_MISO_PIN;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- HAL_GPIO_Init(SPI_MISO_GPIO_PORT, &GPIO_InitStruct);
- /* SPI MOSI GPIO pin configuration */
- GPIO_InitStruct.Pin = SPI_MOSI_PIN;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- HAL_GPIO_Init(SPI_MOSI_GPIO_PORT, &GPIO_InitStruct);
- HAL_GPIO_WritePin(SPI_MOSI_GPIO_PORT, SPI_MOSI_PIN, GPIO_PIN_SET);
-
- GPIO_InitStruct.Pin = SPI_NSS_PIN;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- HAL_GPIO_Init(SPI_NSS_GPIO_PORT, &GPIO_InitStruct);
- HAL_GPIO_WritePin(SPI_NSS_GPIO_PORT, SPI_NSS_PIN, GPIO_PIN_SET);
-
- GPIO_InitStruct.Pin = SPI_RESET_PIN;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- HAL_GPIO_Init(SPI_RESET_GPIO_PORT, &GPIO_InitStruct);
- HAL_GPIO_WritePin(SPI_RESET_GPIO_PORT, SPI_RESET_PIN, GPIO_PIN_SET);
- }
|