1*225f4ba4SMatthias Ringwald /** 2*225f4ba4SMatthias Ringwald ****************************************************************************** 3*225f4ba4SMatthias Ringwald * File Name : SPI.c 4*225f4ba4SMatthias Ringwald * Description : This file provides code for the configuration 5*225f4ba4SMatthias Ringwald * of the SPI instances. 6*225f4ba4SMatthias Ringwald ****************************************************************************** 7*225f4ba4SMatthias Ringwald * @attention 8*225f4ba4SMatthias Ringwald * 9*225f4ba4SMatthias Ringwald * <h2><center>© Copyright (c) 2019 STMicroelectronics. 10*225f4ba4SMatthias Ringwald * All rights reserved.</center></h2> 11*225f4ba4SMatthias Ringwald * 12*225f4ba4SMatthias Ringwald * This software component is licensed by ST under BSD 3-Clause license, 13*225f4ba4SMatthias Ringwald * the "License"; You may not use this file except in compliance with the 14*225f4ba4SMatthias Ringwald * License. You may obtain a copy of the License at: 15*225f4ba4SMatthias Ringwald * opensource.org/licenses/BSD-3-Clause 16*225f4ba4SMatthias Ringwald * 17*225f4ba4SMatthias Ringwald ****************************************************************************** 18*225f4ba4SMatthias Ringwald */ 19*225f4ba4SMatthias Ringwald 20*225f4ba4SMatthias Ringwald /* Includes ------------------------------------------------------------------*/ 21*225f4ba4SMatthias Ringwald #include "spi.h" 22*225f4ba4SMatthias Ringwald 23*225f4ba4SMatthias Ringwald /* USER CODE BEGIN 0 */ 24*225f4ba4SMatthias Ringwald 25*225f4ba4SMatthias Ringwald /* USER CODE END 0 */ 26*225f4ba4SMatthias Ringwald 27*225f4ba4SMatthias Ringwald SPI_HandleTypeDef hspi1; 28*225f4ba4SMatthias Ringwald 29*225f4ba4SMatthias Ringwald /* SPI1 init function */ MX_SPI1_Init(void)30*225f4ba4SMatthias Ringwaldvoid MX_SPI1_Init(void) 31*225f4ba4SMatthias Ringwald { 32*225f4ba4SMatthias Ringwald 33*225f4ba4SMatthias Ringwald hspi1.Instance = SPI1; 34*225f4ba4SMatthias Ringwald hspi1.Init.Mode = SPI_MODE_MASTER; 35*225f4ba4SMatthias Ringwald hspi1.Init.Direction = SPI_DIRECTION_2LINES; 36*225f4ba4SMatthias Ringwald hspi1.Init.DataSize = SPI_DATASIZE_8BIT; 37*225f4ba4SMatthias Ringwald hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; 38*225f4ba4SMatthias Ringwald hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; 39*225f4ba4SMatthias Ringwald hspi1.Init.NSS = SPI_NSS_SOFT; 40*225f4ba4SMatthias Ringwald hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; 41*225f4ba4SMatthias Ringwald hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; 42*225f4ba4SMatthias Ringwald hspi1.Init.TIMode = SPI_TIMODE_DISABLE; 43*225f4ba4SMatthias Ringwald hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 44*225f4ba4SMatthias Ringwald hspi1.Init.CRCPolynomial = 10; 45*225f4ba4SMatthias Ringwald if (HAL_SPI_Init(&hspi1) != HAL_OK) 46*225f4ba4SMatthias Ringwald { 47*225f4ba4SMatthias Ringwald Error_Handler(); 48*225f4ba4SMatthias Ringwald } 49*225f4ba4SMatthias Ringwald 50*225f4ba4SMatthias Ringwald } 51*225f4ba4SMatthias Ringwald HAL_SPI_MspInit(SPI_HandleTypeDef * spiHandle)52*225f4ba4SMatthias Ringwaldvoid HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) 53*225f4ba4SMatthias Ringwald { 54*225f4ba4SMatthias Ringwald 55*225f4ba4SMatthias Ringwald GPIO_InitTypeDef GPIO_InitStruct = {0}; 56*225f4ba4SMatthias Ringwald if(spiHandle->Instance==SPI1) 57*225f4ba4SMatthias Ringwald { 58*225f4ba4SMatthias Ringwald /* USER CODE BEGIN SPI1_MspInit 0 */ 59*225f4ba4SMatthias Ringwald 60*225f4ba4SMatthias Ringwald /* USER CODE END SPI1_MspInit 0 */ 61*225f4ba4SMatthias Ringwald /* SPI1 clock enable */ 62*225f4ba4SMatthias Ringwald __HAL_RCC_SPI1_CLK_ENABLE(); 63*225f4ba4SMatthias Ringwald 64*225f4ba4SMatthias Ringwald __HAL_RCC_GPIOA_CLK_ENABLE(); 65*225f4ba4SMatthias Ringwald /**SPI1 GPIO Configuration 66*225f4ba4SMatthias Ringwald PA5 ------> SPI1_SCK 67*225f4ba4SMatthias Ringwald PA6 ------> SPI1_MISO 68*225f4ba4SMatthias Ringwald PA7 ------> SPI1_MOSI 69*225f4ba4SMatthias Ringwald */ 70*225f4ba4SMatthias Ringwald GPIO_InitStruct.Pin = SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin; 71*225f4ba4SMatthias Ringwald GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 72*225f4ba4SMatthias Ringwald GPIO_InitStruct.Pull = GPIO_NOPULL; 73*225f4ba4SMatthias Ringwald GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 74*225f4ba4SMatthias Ringwald GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; 75*225f4ba4SMatthias Ringwald HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 76*225f4ba4SMatthias Ringwald 77*225f4ba4SMatthias Ringwald /* USER CODE BEGIN SPI1_MspInit 1 */ 78*225f4ba4SMatthias Ringwald 79*225f4ba4SMatthias Ringwald /* USER CODE END SPI1_MspInit 1 */ 80*225f4ba4SMatthias Ringwald } 81*225f4ba4SMatthias Ringwald } 82*225f4ba4SMatthias Ringwald HAL_SPI_MspDeInit(SPI_HandleTypeDef * spiHandle)83*225f4ba4SMatthias Ringwaldvoid HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle) 84*225f4ba4SMatthias Ringwald { 85*225f4ba4SMatthias Ringwald 86*225f4ba4SMatthias Ringwald if(spiHandle->Instance==SPI1) 87*225f4ba4SMatthias Ringwald { 88*225f4ba4SMatthias Ringwald /* USER CODE BEGIN SPI1_MspDeInit 0 */ 89*225f4ba4SMatthias Ringwald 90*225f4ba4SMatthias Ringwald /* USER CODE END SPI1_MspDeInit 0 */ 91*225f4ba4SMatthias Ringwald /* Peripheral clock disable */ 92*225f4ba4SMatthias Ringwald __HAL_RCC_SPI1_CLK_DISABLE(); 93*225f4ba4SMatthias Ringwald 94*225f4ba4SMatthias Ringwald /**SPI1 GPIO Configuration 95*225f4ba4SMatthias Ringwald PA5 ------> SPI1_SCK 96*225f4ba4SMatthias Ringwald PA6 ------> SPI1_MISO 97*225f4ba4SMatthias Ringwald PA7 ------> SPI1_MOSI 98*225f4ba4SMatthias Ringwald */ 99*225f4ba4SMatthias Ringwald HAL_GPIO_DeInit(GPIOA, SPI1_SCK_Pin|SPI1_MISO_Pin|SPI1_MOSI_Pin); 100*225f4ba4SMatthias Ringwald 101*225f4ba4SMatthias Ringwald /* USER CODE BEGIN SPI1_MspDeInit 1 */ 102*225f4ba4SMatthias Ringwald 103*225f4ba4SMatthias Ringwald /* USER CODE END SPI1_MspDeInit 1 */ 104*225f4ba4SMatthias Ringwald } 105*225f4ba4SMatthias Ringwald } 106*225f4ba4SMatthias Ringwald 107*225f4ba4SMatthias Ringwald /* USER CODE BEGIN 1 */ 108*225f4ba4SMatthias Ringwald 109*225f4ba4SMatthias Ringwald /* USER CODE END 1 */ 110*225f4ba4SMatthias Ringwald 111*225f4ba4SMatthias Ringwald /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 112