Rev 8 | Rev 11 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8 | Rev 9 | ||
---|---|---|---|
Line 21... | Line 21... | ||
21 | #include "main.h" |
21 | #include "main.h" |
22 | 22 | ||
23 | /* Private includes ----------------------------------------------------------*/ |
23 | /* Private includes ----------------------------------------------------------*/ |
24 | /* USER CODE BEGIN Includes */ |
24 | /* USER CODE BEGIN Includes */ |
25 | #include "libSerial/serial.h" |
25 | #include "libSerial/serial.h" |
26 | #include "nmea.h" |
- | |
- | 26 | ||
27 | #include "display.h" |
27 | #include "display.h" |
28 | /* USER CODE END Includes */ |
28 | /* USER CODE END Includes */ |
29 | 29 | ||
30 | /* Private typedef -----------------------------------------------------------*/ |
30 | /* Private typedef -----------------------------------------------------------*/ |
31 | /* USER CODE BEGIN PTD */ |
31 | /* USER CODE BEGIN PTD */ |
Line 44... | Line 44... | ||
44 | /* Private variables ---------------------------------------------------------*/ |
44 | /* Private variables ---------------------------------------------------------*/ |
45 | CAN_HandleTypeDef hcan; |
45 | CAN_HandleTypeDef hcan; |
46 | 46 | ||
47 | SPI_HandleTypeDef hspi1; |
47 | SPI_HandleTypeDef hspi1; |
48 | 48 | ||
- | 49 | TIM_HandleTypeDef htim3; |
|
49 | TIM_HandleTypeDef htim4; |
50 | TIM_HandleTypeDef htim4; |
50 | 51 | ||
51 | UART_HandleTypeDef huart1; |
52 | UART_HandleTypeDef huart1; |
52 | 53 | ||
53 | /* USER CODE BEGIN PV */ |
54 | /* USER CODE BEGIN PV */ |
54 | 55 | ||
55 | /* USER CODE END PV */ |
56 | /* USER CODE END PV */ |
56 | 57 | ||
57 | /* Private function prototypes -----------------------------------------------*/ |
58 | /* Private function prototypes -----------------------------------------------*/ |
58 | void |
- | |
59 | SystemClock_Config (void); |
59 | void SystemClock_Config(void); |
60 | static void |
- | |
61 | MX_GPIO_Init (void); |
60 | static void MX_GPIO_Init(void); |
62 | static void |
- | |
63 | MX_CAN_Init (void); |
61 | static void MX_CAN_Init(void); |
64 | static void |
- | |
65 | MX_SPI1_Init (void); |
62 | static void MX_SPI1_Init(void); |
66 | static void |
- | |
67 | MX_TIM4_Init (void); |
63 | static void MX_TIM4_Init(void); |
68 | static void |
64 | static void MX_USART1_UART_Init(void); |
69 | MX_USART1_UART_Init (void); |
65 | static void MX_TIM3_Init(void); |
70 | /* USER CODE BEGIN PFP */ |
66 | /* USER CODE BEGIN PFP */ |
71 | 67 | ||
72 | /* USER CODE END PFP */ |
68 | /* USER CODE END PFP */ |
73 | 69 | ||
74 | /* Private user code ---------------------------------------------------------*/ |
70 | /* Private user code ---------------------------------------------------------*/ |
75 | /* USER CODE BEGIN 0 */ |
71 | /* USER CODE BEGIN 0 */ |
76 | 72 | ||
77 | /* USER CODE END 0 */ |
73 | /* USER CODE END 0 */ |
78 | 74 | ||
79 | /** |
75 | /** |
80 | * @brief The application entry point. |
76 | * @brief The application entry point. |
81 | * @retval int |
77 | * @retval int |
82 | */ |
78 | */ |
83 | int |
- | |
84 | main (void) |
79 | int main(void) |
85 | { |
80 | { |
86 | /* USER CODE BEGIN 1 */ |
81 | /* USER CODE BEGIN 1 */ |
87 | 82 | ||
88 | /* USER CODE END 1 */ |
83 | /* USER CODE END 1 */ |
89 | 84 | ||
90 | /* MCU Configuration--------------------------------------------------------*/ |
85 | /* MCU Configuration--------------------------------------------------------*/ |
91 | 86 | ||
92 | /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ |
87 | /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ |
93 | HAL_Init (); |
88 | HAL_Init(); |
94 | 89 | ||
95 | /* USER CODE BEGIN Init */ |
90 | /* USER CODE BEGIN Init */ |
96 | 91 | ||
97 | /* USER CODE END Init */ |
92 | /* USER CODE END Init */ |
98 | 93 | ||
99 | /* Configure the system clock */ |
94 | /* Configure the system clock */ |
100 | SystemClock_Config (); |
95 | SystemClock_Config(); |
101 | 96 | ||
102 | /* USER CODE BEGIN SysInit */ |
97 | /* USER CODE BEGIN SysInit */ |
103 | 98 | ||
104 | /* USER CODE END SysInit */ |
99 | /* USER CODE END SysInit */ |
105 | 100 | ||
106 | /* Initialize all configured peripherals */ |
101 | /* Initialize all configured peripherals */ |
107 | MX_GPIO_Init (); |
102 | MX_GPIO_Init(); |
108 | MX_CAN_Init (); |
103 | MX_CAN_Init(); |
109 | MX_SPI1_Init (); |
104 | MX_SPI1_Init(); |
110 | MX_TIM4_Init (); |
105 | MX_TIM4_Init(); |
111 | MX_USART1_UART_Init (); |
106 | MX_USART1_UART_Init(); |
- | 107 | MX_TIM3_Init(); |
|
112 | /* USER CODE BEGIN 2 */ |
108 | /* USER CODE BEGIN 2 */ |
113 | __HAL_RCC_USART1_CLK_ENABLE(); |
109 | __HAL_RCC_USART1_CLK_ENABLE(); |
114 | /* setup the USART control blocks */ |
110 | /* setup the USART control blocks */ |
115 | init_usart_ctl (&uc1, huart1.Instance); |
111 | init_usart_ctl (&uc1, huart1.Instance); |
116 | 112 | ||
Line 124... | Line 120... | ||
124 | /* USER CODE BEGIN WHILE */ |
120 | /* USER CODE BEGIN WHILE */ |
125 | while (1) |
121 | while (1) |
126 | { |
122 | { |
127 | cc_run (); |
123 | cc_run (); |
128 | 124 | ||
129 | Location loc; |
- | |
130 | uint8_t stat = updateLocation (&loc); |
- | |
131 | 125 | ||
132 | HAL_Delay (10); |
126 | HAL_Delay (50); |
133 | 127 | ||
134 | /* USER CODE END WHILE */ |
128 | /* USER CODE END WHILE */ |
135 | 129 | ||
136 | /* USER CODE BEGIN 3 */ |
130 | /* USER CODE BEGIN 3 */ |
137 | } |
131 | } |
138 | /* USER CODE END 3 */ |
132 | /* USER CODE END 3 */ |
139 | } |
133 | } |
140 | 134 | ||
141 | /** |
135 | /** |
142 | * @brief System Clock Configuration |
136 | * @brief System Clock Configuration |
143 | * @retval None |
137 | * @retval None |
144 | */ |
138 | */ |
145 | void |
- | |
146 | SystemClock_Config (void) |
139 | void SystemClock_Config(void) |
147 | { |
140 | { |
148 | RCC_OscInitTypeDef RCC_OscInitStruct = |
141 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
149 | { 0 }; |
- | |
150 | RCC_ClkInitTypeDef RCC_ClkInitStruct = |
142 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
151 | { 0 }; |
- | |
152 | 143 | ||
153 | /** Initializes the RCC Oscillators according to the specified parameters |
144 | /** Initializes the RCC Oscillators according to the specified parameters |
154 | * in the RCC_OscInitTypeDef structure. |
145 | * in the RCC_OscInitTypeDef structure. |
155 | */ |
146 | */ |
156 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
147 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
157 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
148 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
158 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
149 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
159 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
150 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
160 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
151 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
161 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
152 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
162 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8; |
153 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8; |
163 | if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) |
154 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
164 | { |
155 | { |
165 | Error_Handler (); |
156 | Error_Handler(); |
166 | } |
157 | } |
167 | /** Initializes the CPU, AHB and APB buses clocks |
158 | /** Initializes the CPU, AHB and APB buses clocks |
168 | */ |
159 | */ |
169 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK |
160 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
170 | | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; |
161 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |
171 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
162 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
172 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
163 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
173 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
164 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
174 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
165 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
175 | 166 | ||
176 | if (HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) |
167 | if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) |
177 | { |
168 | { |
178 | Error_Handler (); |
169 | Error_Handler(); |
179 | } |
170 | } |
180 | } |
171 | } |
181 | 172 | ||
182 | /** |
173 | /** |
183 | * @brief CAN Initialization Function |
174 | * @brief CAN Initialization Function |
184 | * @param None |
175 | * @param None |
185 | * @retval None |
176 | * @retval None |
186 | */ |
177 | */ |
187 | static void |
- | |
188 | MX_CAN_Init (void) |
178 | static void MX_CAN_Init(void) |
189 | { |
179 | { |
190 | 180 | ||
191 | /* USER CODE BEGIN CAN_Init 0 */ |
181 | /* USER CODE BEGIN CAN_Init 0 */ |
192 | 182 | ||
193 | /* USER CODE END CAN_Init 0 */ |
183 | /* USER CODE END CAN_Init 0 */ |
Line 205... | Line 195... | ||
205 | hcan.Init.AutoBusOff = DISABLE; |
195 | hcan.Init.AutoBusOff = DISABLE; |
206 | hcan.Init.AutoWakeUp = DISABLE; |
196 | hcan.Init.AutoWakeUp = DISABLE; |
207 | hcan.Init.AutoRetransmission = DISABLE; |
197 | hcan.Init.AutoRetransmission = DISABLE; |
208 | hcan.Init.ReceiveFifoLocked = DISABLE; |
198 | hcan.Init.ReceiveFifoLocked = DISABLE; |
209 | hcan.Init.TransmitFifoPriority = DISABLE; |
199 | hcan.Init.TransmitFifoPriority = DISABLE; |
210 | if (HAL_CAN_Init (&hcan) != HAL_OK) |
200 | if (HAL_CAN_Init(&hcan) != HAL_OK) |
211 | { |
201 | { |
212 | Error_Handler (); |
202 | Error_Handler(); |
213 | } |
203 | } |
214 | /* USER CODE BEGIN CAN_Init 2 */ |
204 | /* USER CODE BEGIN CAN_Init 2 */ |
215 | 205 | ||
216 | /* USER CODE END CAN_Init 2 */ |
206 | /* USER CODE END CAN_Init 2 */ |
217 | 207 | ||
218 | } |
208 | } |
219 | 209 | ||
220 | /** |
210 | /** |
221 | * @brief SPI1 Initialization Function |
211 | * @brief SPI1 Initialization Function |
222 | * @param None |
212 | * @param None |
223 | * @retval None |
213 | * @retval None |
224 | */ |
214 | */ |
225 | static void |
- | |
226 | MX_SPI1_Init (void) |
215 | static void MX_SPI1_Init(void) |
227 | { |
216 | { |
228 | 217 | ||
229 | /* USER CODE BEGIN SPI1_Init 0 */ |
218 | /* USER CODE BEGIN SPI1_Init 0 */ |
230 | 219 | ||
231 | /* USER CODE END SPI1_Init 0 */ |
220 | /* USER CODE END SPI1_Init 0 */ |
Line 244... | Line 233... | ||
244 | hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; |
233 | hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; |
245 | hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; |
234 | hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; |
246 | hspi1.Init.TIMode = SPI_TIMODE_DISABLE; |
235 | hspi1.Init.TIMode = SPI_TIMODE_DISABLE; |
247 | hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
236 | hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
248 | hspi1.Init.CRCPolynomial = 10; |
237 | hspi1.Init.CRCPolynomial = 10; |
249 | if (HAL_SPI_Init (&hspi1) != HAL_OK) |
238 | if (HAL_SPI_Init(&hspi1) != HAL_OK) |
250 | { |
239 | { |
251 | Error_Handler (); |
240 | Error_Handler(); |
252 | } |
241 | } |
253 | /* USER CODE BEGIN SPI1_Init 2 */ |
242 | /* USER CODE BEGIN SPI1_Init 2 */ |
254 | 243 | ||
255 | /* USER CODE END SPI1_Init 2 */ |
244 | /* USER CODE END SPI1_Init 2 */ |
256 | 245 | ||
257 | } |
246 | } |
258 | 247 | ||
259 | /** |
248 | /** |
260 | * @brief TIM4 Initialization Function |
249 | * @brief TIM3 Initialization Function |
261 | * @param None |
250 | * @param None |
262 | * @retval None |
251 | * @retval None |
263 | */ |
252 | */ |
- | 253 | static void MX_TIM3_Init(void) |
|
- | 254 | { |
|
- | 255 | ||
- | 256 | /* USER CODE BEGIN TIM3_Init 0 */ |
|
- | 257 | ||
- | 258 | /* USER CODE END TIM3_Init 0 */ |
|
- | 259 | ||
- | 260 | TIM_MasterConfigTypeDef sMasterConfig = {0}; |
|
- | 261 | TIM_OC_InitTypeDef sConfigOC = {0}; |
|
- | 262 | ||
- | 263 | /* USER CODE BEGIN TIM3_Init 1 */ |
|
- | 264 | ||
- | 265 | /* USER CODE END TIM3_Init 1 */ |
|
- | 266 | htim3.Instance = TIM3; |
|
- | 267 | htim3.Init.Prescaler = 640; |
|
- | 268 | htim3.Init.CounterMode = TIM_COUNTERMODE_UP; |
|
- | 269 | htim3.Init.Period = 10000; |
|
- | 270 | htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; |
|
- | 271 | htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; |
|
- | 272 | if (HAL_TIM_OC_Init(&htim3) != HAL_OK) |
|
- | 273 | { |
|
- | 274 | Error_Handler(); |
|
- | 275 | } |
|
- | 276 | if (HAL_TIM_OnePulse_Init(&htim3, TIM_OPMODE_SINGLE) != HAL_OK) |
|
- | 277 | { |
|
- | 278 | Error_Handler(); |
|
- | 279 | } |
|
- | 280 | sMasterConfig.MasterOutputTrigger = TIM_TRGO_ENABLE; |
|
- | 281 | sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |
|
- | 282 | if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) |
|
- | 283 | { |
|
- | 284 | Error_Handler(); |
|
- | 285 | } |
|
- | 286 | sConfigOC.OCMode = TIM_OCMODE_TIMING; |
|
- | 287 | sConfigOC.Pulse = 9999; |
|
- | 288 | sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; |
|
- | 289 | sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; |
|
- | 290 | if (HAL_TIM_OC_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) |
|
- | 291 | { |
|
- | 292 | Error_Handler(); |
|
- | 293 | } |
|
- | 294 | /* USER CODE BEGIN TIM3_Init 2 */ |
|
- | 295 | ||
- | 296 | /* USER CODE END TIM3_Init 2 */ |
|
- | 297 | ||
- | 298 | } |
|
- | 299 | ||
- | 300 | /** |
|
- | 301 | * @brief TIM4 Initialization Function |
|
264 | static void |
302 | * @param None |
- | 303 | * @retval None |
|
- | 304 | */ |
|
265 | MX_TIM4_Init (void) |
305 | static void MX_TIM4_Init(void) |
266 | { |
306 | { |
267 | 307 | ||
268 | /* USER CODE BEGIN TIM4_Init 0 */ |
308 | /* USER CODE BEGIN TIM4_Init 0 */ |
269 | 309 | ||
270 | /* USER CODE END TIM4_Init 0 */ |
310 | /* USER CODE END TIM4_Init 0 */ |
271 | 311 | ||
272 | TIM_Encoder_InitTypeDef sConfig = |
312 | TIM_Encoder_InitTypeDef sConfig = {0}; |
273 | { 0 }; |
- | |
274 | TIM_MasterConfigTypeDef sMasterConfig = |
313 | TIM_MasterConfigTypeDef sMasterConfig = {0}; |
275 | { 0 }; |
- | |
276 | 314 | ||
277 | /* USER CODE BEGIN TIM4_Init 1 */ |
315 | /* USER CODE BEGIN TIM4_Init 1 */ |
278 | 316 | ||
279 | /* USER CODE END TIM4_Init 1 */ |
317 | /* USER CODE END TIM4_Init 1 */ |
280 | htim4.Instance = TIM4; |
318 | htim4.Instance = TIM4; |
Line 290... | Line 328... | ||
290 | sConfig.IC1Filter = 8; |
328 | sConfig.IC1Filter = 8; |
291 | sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; |
329 | sConfig.IC2Polarity = TIM_ICPOLARITY_RISING; |
292 | sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; |
330 | sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI; |
293 | sConfig.IC2Prescaler = TIM_ICPSC_DIV1; |
331 | sConfig.IC2Prescaler = TIM_ICPSC_DIV1; |
294 | sConfig.IC2Filter = 8; |
332 | sConfig.IC2Filter = 8; |
295 | if (HAL_TIM_Encoder_Init (&htim4, &sConfig) != HAL_OK) |
333 | if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK) |
296 | { |
334 | { |
297 | Error_Handler (); |
335 | Error_Handler(); |
298 | } |
336 | } |
299 | sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; |
337 | sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; |
300 | sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |
338 | sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; |
301 | if (HAL_TIMEx_MasterConfigSynchronization (&htim4, &sMasterConfig) != HAL_OK) |
339 | if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK) |
302 | { |
340 | { |
303 | Error_Handler (); |
341 | Error_Handler(); |
304 | } |
342 | } |
305 | /* USER CODE BEGIN TIM4_Init 2 */ |
343 | /* USER CODE BEGIN TIM4_Init 2 */ |
306 | 344 | ||
307 | /* USER CODE END TIM4_Init 2 */ |
345 | /* USER CODE END TIM4_Init 2 */ |
308 | 346 | ||
309 | } |
347 | } |
310 | 348 | ||
311 | /** |
349 | /** |
312 | * @brief USART1 Initialization Function |
350 | * @brief USART1 Initialization Function |
313 | * @param None |
351 | * @param None |
314 | * @retval None |
352 | * @retval None |
315 | */ |
353 | */ |
316 | static void |
- | |
317 | MX_USART1_UART_Init (void) |
354 | static void MX_USART1_UART_Init(void) |
318 | { |
355 | { |
319 | 356 | ||
320 | /* USER CODE BEGIN USART1_Init 0 */ |
357 | /* USER CODE BEGIN USART1_Init 0 */ |
321 | 358 | ||
322 | /* USER CODE END USART1_Init 0 */ |
359 | /* USER CODE END USART1_Init 0 */ |
Line 330... | Line 367... | ||
330 | huart1.Init.StopBits = UART_STOPBITS_1; |
367 | huart1.Init.StopBits = UART_STOPBITS_1; |
331 | huart1.Init.Parity = UART_PARITY_NONE; |
368 | huart1.Init.Parity = UART_PARITY_NONE; |
332 | huart1.Init.Mode = UART_MODE_TX_RX; |
369 | huart1.Init.Mode = UART_MODE_TX_RX; |
333 | huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
370 | huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
334 | huart1.Init.OverSampling = UART_OVERSAMPLING_16; |
371 | huart1.Init.OverSampling = UART_OVERSAMPLING_16; |
335 | if (HAL_UART_Init (&huart1) != HAL_OK) |
372 | if (HAL_UART_Init(&huart1) != HAL_OK) |
336 | { |
373 | { |
337 | Error_Handler (); |
374 | Error_Handler(); |
338 | } |
375 | } |
339 | /* USER CODE BEGIN USART1_Init 2 */ |
376 | /* USER CODE BEGIN USART1_Init 2 */ |
340 | 377 | ||
341 | /* USER CODE END USART1_Init 2 */ |
378 | /* USER CODE END USART1_Init 2 */ |
342 | 379 | ||
343 | } |
380 | } |
344 | 381 | ||
345 | /** |
382 | /** |
346 | * @brief GPIO Initialization Function |
383 | * @brief GPIO Initialization Function |
347 | * @param None |
384 | * @param None |
348 | * @retval None |
385 | * @retval None |
349 | */ |
386 | */ |
350 | static void |
- | |
351 | MX_GPIO_Init (void) |
387 | static void MX_GPIO_Init(void) |
352 | { |
388 | { |
353 | GPIO_InitTypeDef GPIO_InitStruct = |
389 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
354 | { 0 }; |
- | |
355 | 390 | ||
356 | /* GPIO Ports Clock Enable */ |
391 | /* GPIO Ports Clock Enable */ |
357 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
392 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
358 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
393 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
359 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
394 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
360 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
395 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
361 | 396 | ||
362 | /*Configure GPIO pin Output Level */ |
397 | /*Configure GPIO pin Output Level */ |
363 | HAL_GPIO_WritePin (GPIOC, SPI_CD_Pin | SPI_RESET_Pin, GPIO_PIN_RESET); |
398 | HAL_GPIO_WritePin(GPIOC, SPI_CD_Pin|SPI_RESET_Pin, GPIO_PIN_RESET); |
364 | 399 | ||
365 | /*Configure GPIO pin Output Level */ |
400 | /*Configure GPIO pin Output Level */ |
366 | HAL_GPIO_WritePin (SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_RESET); |
401 | HAL_GPIO_WritePin(SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_RESET); |
367 | 402 | ||
368 | /*Configure GPIO pins : SPI_CD_Pin SPI_RESET_Pin */ |
403 | /*Configure GPIO pins : SPI_CD_Pin SPI_RESET_Pin */ |
369 | GPIO_InitStruct.Pin = SPI_CD_Pin | SPI_RESET_Pin; |
404 | GPIO_InitStruct.Pin = SPI_CD_Pin|SPI_RESET_Pin; |
370 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
405 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
371 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
406 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
372 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
407 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
373 | HAL_GPIO_Init (GPIOC, &GPIO_InitStruct); |
408 | HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); |
374 | 409 | ||
375 | /*Configure GPIO pin : SPI_NSS1_Pin */ |
410 | /*Configure GPIO pin : SPI_NSS1_Pin */ |
376 | GPIO_InitStruct.Pin = SPI_NSS1_Pin; |
411 | GPIO_InitStruct.Pin = SPI_NSS1_Pin; |
377 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
412 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
378 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
413 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
379 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
414 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
380 | HAL_GPIO_Init (SPI_NSS1_GPIO_Port, &GPIO_InitStruct); |
415 | HAL_GPIO_Init(SPI_NSS1_GPIO_Port, &GPIO_InitStruct); |
381 | 416 | ||
382 | } |
417 | } |
383 | 418 | ||
384 | /* USER CODE BEGIN 4 */ |
419 | /* USER CODE BEGIN 4 */ |
385 | 420 | ||
386 | /* USER CODE END 4 */ |
421 | /* USER CODE END 4 */ |
387 | 422 | ||
388 | /** |
423 | /** |
389 | * @brief This function is executed in case of error occurrence. |
424 | * @brief This function is executed in case of error occurrence. |
390 | * @retval None |
425 | * @retval None |
391 | */ |
426 | */ |
392 | void |
- | |
393 | Error_Handler (void) |
427 | void Error_Handler(void) |
394 | { |
428 | { |
395 | /* USER CODE BEGIN Error_Handler_Debug */ |
429 | /* USER CODE BEGIN Error_Handler_Debug */ |
396 | /* User can add his own implementation to report the HAL error return state */ |
430 | /* User can add his own implementation to report the HAL error return state */ |
397 | 431 | ||
398 | /* USER CODE END Error_Handler_Debug */ |
432 | /* USER CODE END Error_Handler_Debug */ |