| 
					
				 | 
			
			
				@@ -0,0 +1,141 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ****************************************************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * File Name          : SPI.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * Description        : This file provides code for the configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *                      of the SPI instances. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ****************************************************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * COPYRIGHT(c) 2019 STMicroelectronics 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * Redistribution and use in source and binary forms, with or without modification, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * are permitted provided that the following conditions are met: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *   1. Redistributions of source code must retain the above copyright notice, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *      this list of conditions and the following disclaimer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *   2. Redistributions in binary form must reproduce the above copyright notice, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *      this list of conditions and the following disclaimer in the documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *      and/or other materials provided with the distribution. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *   3. Neither the name of STMicroelectronics nor the names of its contributors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *      may be used to endorse or promote products derived from this software 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  *      without specific prior written permission. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ****************************************************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* Includes ------------------------------------------------------------------*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "spi.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "gpio.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* USER CODE BEGIN 0 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* USER CODE END 0 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+SPI_HandleTypeDef hspi1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* SPI1 init function */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void MX_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_HIGH; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.NSS = SPI_NSS_SOFT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.TIMode = SPI_TIMODE_DISABLED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hspi1.Init.CRCPolynomial = 10; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  HAL_SPI_Init(&hspi1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  GPIO_InitTypeDef GPIO_InitStruct; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(hspi->Instance==SPI1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE BEGIN SPI1_MspInit 0 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE END SPI1_MspInit 0 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* Peripheral clock enable */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    __SPI1_CLK_ENABLE(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /**SPI1 GPIO Configuration     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PA6     ------> SPI1_MISO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PA7     ------> SPI1_MOSI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PB3     ------> SPI1_SCK  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Pull = GPIO_NOPULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Pin = GPIO_PIN_3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Pull = GPIO_NOPULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE BEGIN SPI1_MspInit 1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE END SPI1_MspInit 1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(hspi->Instance==SPI1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE BEGIN SPI1_MspDeInit 0 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE END SPI1_MspDeInit 0 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* Peripheral clock disable */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    __SPI1_CLK_DISABLE(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /**SPI1 GPIO Configuration     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PA6     ------> SPI1_MISO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PA7     ------> SPI1_MOSI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PB3     ------> SPI1_SCK  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6|GPIO_PIN_7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE BEGIN SPI1_MspDeInit 1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /* USER CODE END SPI1_MspDeInit 1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* USER CODE BEGIN 1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* USER CODE END 1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * @} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * @} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 
			 |