/********************************************************************************
  * @file           : spi.c
  * @version        : Mowing Robot Team
  * @brief          : MCU SPI相关配置
 *******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "spi.h"


SPI_HandleTypeDef hspi1;

/**
  * @brief  初始化SPI1相关参数
  * @date   2024/04/21
  * @author Mowing Robot Team
  * @retval None
  */
void SPI1_Init(void)
{
  hspi1.Instance = SPI1;
  hspi1.Init.Mode = SPI_MODE_MASTER;
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi1.Init.NSS = SPI_NSS_SOFT;
	// hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64; 
	// 和生成的代码存在差异
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  hspi1.Init.CRCPolynomial = 10;
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
  {
    Error_Handler();
  }
}
///**
//  * @brief  SPI的硬件IO和时钟初始化
//  * @date   2024/04/21
//  * @author Mowing Robot Team
//  * @retval None
//  */
//void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
//{

//  GPIO_InitTypeDef GPIO_InitStruct = {0};
//  if(spiHandle->Instance==SPI1)
//  {
//    //开启SPI和GPIOA的时钟
//    __HAL_RCC_SPI1_CLK_ENABLE();
//    __HAL_RCC_GPIOA_CLK_ENABLE();
//    /** SPI1 GPIO 配置
//    PA5     ------> SPI1_SCK
//    PA6     ------> SPI1_MISO
//    PA7     ------> SPI1_MOSI
//    */
//    GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
//    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
//    GPIO_InitStruct.Pull = GPIO_NOPULL;
//    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
//    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
//    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//  }
//}
///**
//  * @brief  SPI的硬件IO和时钟反初始化
//  * @date   2024/04/21
//  * @author Mowing Robot Team
//  * @retval None
//  */
//void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
//{
//  if(spiHandle->Instance==SPI1)
//  {
//    /* 禁用外设时钟*/
//    __HAL_RCC_SPI1_CLK_DISABLE();

//    /** SPI1 GPIO 配置
//    PA5     ------> SPI1_SCK
//    PA6     ------> SPI1_MISO
//    PA7     ------> SPI1_MOSI
//    */
//    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
//  }
//}
