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

Last change on this file was 20, checked in by f.jahn, 5 days ago

adc dma funktioniert und modbus funktioniert

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_4BIT;
44  hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
45  hspi3.Init.CLKPhase = SPI_PHASE_1EDGE;
46  hspi3.Init.NSS = SPI_NSS_HARD_OUTPUT;
47  hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
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_ENABLE;
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.