source: trunk/fw_g473rct/Core/Src/spi.c

Last change on this file was 25, checked in by f.jahn, 3 months ago

RTC implementiert

File size: 3.7 KB
Line 
1/* USER CODE BEGIN Header */
2/**
3 ******************************************************************************
4 * @file spi.c
5 * @brief This file provides code for the configuration
6 * of the SPI instances.
7 ******************************************************************************
8 * @attention
9 *
10 * Copyright (c) 2025 STMicroelectronics.
11 * All rights reserved.
12 *
13 * This software is licensed under terms that can be found in the LICENSE file
14 * in the root directory of this software component.
15 * If no LICENSE file comes with this software, it is provided AS-IS.
16 *
17 ******************************************************************************
18 */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "spi.h"
22
23/* USER CODE BEGIN 0 */
24
25/* USER CODE END 0 */
26
27SPI_HandleTypeDef hspi3;
28
29/* SPI3 init function */
30void MX_SPI3_Init(void)
31{
32
33 /* USER CODE BEGIN SPI3_Init 0 */
34
35 /* USER CODE END SPI3_Init 0 */
36
37 /* USER CODE BEGIN SPI3_Init 1 */
38
39 /* USER CODE END SPI3_Init 1 */
40 hspi3.Instance = SPI3;
41 hspi3.Init.Mode = SPI_MODE_MASTER;
42 hspi3.Init.Direction = SPI_DIRECTION_2LINES;
43 hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
44 hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
45 hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
46 hspi3.Init.NSS = SPI_NSS_HARD_OUTPUT;
47 hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
48 hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
49 hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
50 hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
51 hspi3.Init.CRCPolynomial = 7;
52 hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
53 hspi3.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
54 if (HAL_SPI_Init(&hspi3) != HAL_OK)
55 {
56 Error_Handler();
57 }
58 /* USER CODE BEGIN SPI3_Init 2 */
59
60 /* USER CODE END SPI3_Init 2 */
61
62}
63
64void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
65{
66
67 GPIO_InitTypeDef GPIO_InitStruct = {0};
68 if(spiHandle->Instance==SPI3)
69 {
70 /* USER CODE BEGIN SPI3_MspInit 0 */
71
72 /* USER CODE END SPI3_MspInit 0 */
73 /* SPI3 clock enable */
74 __HAL_RCC_SPI3_CLK_ENABLE();
75
76 __HAL_RCC_GPIOA_CLK_ENABLE();
77 __HAL_RCC_GPIOC_CLK_ENABLE();
78 /**SPI3 GPIO Configuration
79 PA15 ------> SPI3_NSS
80 PC10 ------> SPI3_SCK
81 PC11 ------> SPI3_MISO
82 PC12 ------> SPI3_MOSI
83 */
84 GPIO_InitStruct.Pin = GPIO_PIN_15;
85 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
86 GPIO_InitStruct.Pull = GPIO_NOPULL;
87 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
88 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
89 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
90
91 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
92 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
93 GPIO_InitStruct.Pull = GPIO_NOPULL;
94 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
95 GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
96 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
97
98 /* USER CODE BEGIN SPI3_MspInit 1 */
99
100 /* USER CODE END SPI3_MspInit 1 */
101 }
102}
103
104void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
105{
106
107 if(spiHandle->Instance==SPI3)
108 {
109 /* USER CODE BEGIN SPI3_MspDeInit 0 */
110
111 /* USER CODE END SPI3_MspDeInit 0 */
112 /* Peripheral clock disable */
113 __HAL_RCC_SPI3_CLK_DISABLE();
114
115 /**SPI3 GPIO Configuration
116 PA15 ------> SPI3_NSS
117 PC10 ------> SPI3_SCK
118 PC11 ------> SPI3_MISO
119 PC12 ------> SPI3_MOSI
120 */
121 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15);
122
123 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12);
124
125 /* USER CODE BEGIN SPI3_MspDeInit 1 */
126
127 /* USER CODE END SPI3_MspDeInit 1 */
128 }
129}
130
131/* USER CODE BEGIN 1 */
132
133/* USER CODE END 1 */
Note: See TracBrowser for help on using the repository browser.