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 | |
---|
27 | SPI_HandleTypeDef hspi3; |
---|
28 | |
---|
29 | /* SPI3 init function */ |
---|
30 | void 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 | |
---|
64 | void 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 | |
---|
104 | void 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 */ |
---|