Rev 5 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 5 | Rev 6 | ||
|---|---|---|---|
| Line 39... | Line 39... | ||
| 39 | /* USER CODE BEGIN PM */ |
39 | /* USER CODE BEGIN PM */ |
| 40 | 40 | ||
| 41 | /* USER CODE END PM */ |
41 | /* USER CODE END PM */ |
| 42 | 42 | ||
| 43 | /* Private variables ---------------------------------------------------------*/ |
43 | /* Private variables ---------------------------------------------------------*/ |
| 44 | ADC_HandleTypeDef hadc; |
44 | ADC_HandleTypeDef hadc; |
| 45 | DMA_HandleTypeDef hdma_adc; |
45 | DMA_HandleTypeDef hdma_adc; |
| 46 | 46 | ||
| 47 | SPI_HandleTypeDef hspi1; |
47 | SPI_HandleTypeDef hspi1; |
| 48 | DMA_HandleTypeDef hdma_spi1_tx; |
48 | DMA_HandleTypeDef hdma_spi1_tx; |
| 49 | 49 | ||
| 50 | TIM_HandleTypeDef htim1; |
50 | TIM_HandleTypeDef htim1; |
| 51 | TIM_HandleTypeDef htim3; |
51 | TIM_HandleTypeDef htim3; |
| - | 52 | TIM_HandleTypeDef htim14; |
|
| 52 | 53 | ||
| 53 | UART_HandleTypeDef huart1; |
54 | UART_HandleTypeDef huart1; |
| 54 | 55 | ||
| 55 | /* USER CODE BEGIN PV */ |
56 | /* USER CODE BEGIN PV */ |
| 56 | #define NUM_SAMPLES 8 |
57 | #define NUM_SAMPLES 8 |
| Line 68... | Line 69... | ||
| 68 | static void MX_ADC_Init(void); |
69 | static void MX_ADC_Init(void); |
| 69 | static void MX_TIM1_Init(void); |
70 | static void MX_TIM1_Init(void); |
| 70 | static void MX_USART1_UART_Init(void); |
71 | static void MX_USART1_UART_Init(void); |
| 71 | static void MX_TIM3_Init(void); |
72 | static void MX_TIM3_Init(void); |
| 72 | static void MX_SPI1_Init(void); |
73 | static void MX_SPI1_Init(void); |
| - | 74 | static void MX_TIM14_Init(void); |
|
| 73 | /* USER CODE BEGIN PFP */ |
75 | /* USER CODE BEGIN PFP */ |
| 74 | 76 | ||
| 75 | /* USER CODE END PFP */ |
77 | /* USER CODE END PFP */ |
| 76 | 78 | ||
| 77 | /* Private user code ---------------------------------------------------------*/ |
79 | /* Private user code ---------------------------------------------------------*/ |
| Line 219... | Line 221... | ||
| 219 | MX_ADC_Init(); |
221 | MX_ADC_Init(); |
| 220 | MX_TIM1_Init(); |
222 | MX_TIM1_Init(); |
| 221 | MX_USART1_UART_Init(); |
223 | MX_USART1_UART_Init(); |
| 222 | MX_TIM3_Init(); |
224 | MX_TIM3_Init(); |
| 223 | MX_SPI1_Init(); |
225 | MX_SPI1_Init(); |
| - | 226 | MX_TIM14_Init(); |
|
| 224 | /* USER CODE BEGIN 2 */ |
227 | /* USER CODE BEGIN 2 */ |
| 225 | 228 | ||
| 226 | int i; |
229 | int i; |
| 227 | for (i = 0; i < NUM_SAMPLES; i++) |
230 | for (i = 0; i < NUM_SAMPLES; i++) |
| 228 | ADC_Samples[i] = 0; |
231 | ADC_Samples[i] = 0; |
| Line 235... | Line 238... | ||
| 235 | 238 | ||
| 236 | // timer 3 triggers the ADC |
239 | // timer 3 triggers the ADC |
| 237 | HAL_TIM_Base_MspInit(&htim3); |
240 | HAL_TIM_Base_MspInit(&htim3); |
| 238 | HAL_TIM_Base_Start_IT(&htim3); |
241 | HAL_TIM_Base_Start_IT(&htim3); |
| 239 | 242 | ||
| - | 243 | // start the timer 1 |
|
| - | 244 | ||
| - | 245 | HAL_TIM_Base_Start(&htim14); |
|
| - | 246 | ||
| - | 247 | __HAL_TIM_SET_COMPARE(&htim14,TIM_CHANNEL_1, 0); |
|
| - | 248 | ||
| - | 249 | HAL_TIM_PWM_Start(&htim14, TIM_CHANNEL_1); |
|
| - | 250 | ||
| 240 | resetGauge(); |
251 | resetGauge(); |
| 241 | 252 | ||
| 242 | /* USER CODE END 2 */ |
253 | /* USER CODE END 2 */ |
| 243 | 254 | ||
| 244 | /* Infinite loop */ |
255 | /* Infinite loop */ |
| 245 | /* USER CODE BEGIN WHILE */ |
256 | /* USER CODE BEGIN WHILE */ |
| 246 | while (1) { |
257 | while (1) { |
| 247 | sendLeds(); |
258 | sendLeds(); |
| 248 | HAL_Delay(10); |
259 | HAL_Delay(10); |
| 249 | 260 | ||
| 250 | 261 | ||
| 251 | uint16_t val = log2fix ( getADC(), 8); |
262 | uint16_t val = log2fix ( getADC(), 8); |
| 252 | 263 | ||
| Line 284... | Line 295... | ||
| 284 | RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; |
295 | RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1; |
| 285 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
296 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
| 286 | { |
297 | { |
| 287 | Error_Handler(); |
298 | Error_Handler(); |
| 288 | } |
299 | } |
| - | 300 | ||
| 289 | /** Initializes the CPU, AHB and APB buses clocks |
301 | /** Initializes the CPU, AHB and APB buses clocks |
| 290 | */ |
302 | */ |
| 291 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
303 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
| 292 | |RCC_CLOCKTYPE_PCLK1; |
304 | |RCC_CLOCKTYPE_PCLK1; |
| 293 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
305 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
| Line 321... | Line 333... | ||
| 321 | ADC_ChannelConfTypeDef sConfig = {0}; |
333 | ADC_ChannelConfTypeDef sConfig = {0}; |
| 322 | 334 | ||
| 323 | /* USER CODE BEGIN ADC_Init 1 */ |
335 | /* USER CODE BEGIN ADC_Init 1 */ |
| 324 | 336 | ||
| 325 | /* USER CODE END ADC_Init 1 */ |
337 | /* USER CODE END ADC_Init 1 */ |
| - | 338 | ||
| 326 | /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) |
339 | /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) |
| 327 | */ |
340 | */ |
| 328 | hadc.Instance = ADC1; |
341 | hadc.Instance = ADC1; |
| 329 | hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; |
342 | hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1; |
| 330 | hadc.Init.Resolution = ADC_RESOLUTION_12B; |
343 | hadc.Init.Resolution = ADC_RESOLUTION_12B; |
| Line 341... | Line 354... | ||
| 341 | hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED; |
354 | hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED; |
| 342 | if (HAL_ADC_Init(&hadc) != HAL_OK) |
355 | if (HAL_ADC_Init(&hadc) != HAL_OK) |
| 343 | { |
356 | { |
| 344 | Error_Handler(); |
357 | Error_Handler(); |
| 345 | } |
358 | } |
| - | 359 | ||
| 346 | /** Configure for the selected ADC regular channel to be converted. |
360 | /** Configure for the selected ADC regular channel to be converted. |
| 347 | */ |
361 | */ |
| 348 | sConfig.Channel = ADC_CHANNEL_0; |
362 | sConfig.Channel = ADC_CHANNEL_0; |
| 349 | sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; |
363 | sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; |
| 350 | sConfig.SamplingTime = ADC_SAMPLETIME_28CYCLES_5; |
364 | sConfig.SamplingTime = ADC_SAMPLETIME_28CYCLES_5; |
| 351 | if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) |
365 | if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) |
| 352 | { |
366 | { |
| 353 | Error_Handler(); |
367 | Error_Handler(); |
| 354 | } |
368 | } |
| - | 369 | ||
| - | 370 | /** Configure for the selected ADC regular channel to be converted. |
|
| - | 371 | */ |
|
| - | 372 | sConfig.Channel = ADC_CHANNEL_1; |
|
| - | 373 | if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) |
|
| - | 374 | { |
|
| - | 375 | Error_Handler(); |
|
| - | 376 | } |
|
| 355 | /* USER CODE BEGIN ADC_Init 2 */ |
377 | /* USER CODE BEGIN ADC_Init 2 */ |
| 356 | 378 | ||
| 357 | /* USER CODE END ADC_Init 2 */ |
379 | /* USER CODE END ADC_Init 2 */ |
| 358 | 380 | ||
| 359 | } |
381 | } |
| Line 488... | Line 510... | ||
| 488 | /* USER CODE END TIM3_Init 2 */ |
510 | /* USER CODE END TIM3_Init 2 */ |
| 489 | 511 | ||
| 490 | } |
512 | } |
| 491 | 513 | ||
| 492 | /** |
514 | /** |
| - | 515 | * @brief TIM14 Initialization Function |
|
| - | 516 | * @param None |
|
| - | 517 | * @retval None |
|
| - | 518 | */ |
|
| - | 519 | static void MX_TIM14_Init(void) |
|
| - | 520 | { |
|
| - | 521 | ||
| - | 522 | /* USER CODE BEGIN TIM14_Init 0 */ |
|
| - | 523 | ||
| - | 524 | /* USER CODE END TIM14_Init 0 */ |
|
| - | 525 | ||
| - | 526 | TIM_OC_InitTypeDef sConfigOC = {0}; |
|
| - | 527 | ||
| - | 528 | /* USER CODE BEGIN TIM14_Init 1 */ |
|
| - | 529 | ||
| - | 530 | /* USER CODE END TIM14_Init 1 */ |
|
| - | 531 | htim14.Instance = TIM14; |
|
| - | 532 | htim14.Init.Prescaler = 8; |
|
| - | 533 | htim14.Init.CounterMode = TIM_COUNTERMODE_UP; |
|
| - | 534 | htim14.Init.Period = 65535; |
|
| - | 535 | htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; |
|
| - | 536 | htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; |
|
| - | 537 | if (HAL_TIM_Base_Init(&htim14) != HAL_OK) |
|
| - | 538 | { |
|
| - | 539 | Error_Handler(); |
|
| - | 540 | } |
|
| - | 541 | if (HAL_TIM_PWM_Init(&htim14) != HAL_OK) |
|
| - | 542 | { |
|
| - | 543 | Error_Handler(); |
|
| - | 544 | } |
|
| - | 545 | sConfigOC.OCMode = TIM_OCMODE_PWM1; |
|
| - | 546 | sConfigOC.Pulse = 0; |
|
| - | 547 | sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; |
|
| - | 548 | sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; |
|
| - | 549 | if (HAL_TIM_PWM_ConfigChannel(&htim14, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) |
|
| - | 550 | { |
|
| - | 551 | Error_Handler(); |
|
| - | 552 | } |
|
| - | 553 | /* USER CODE BEGIN TIM14_Init 2 */ |
|
| - | 554 | ||
| - | 555 | /* USER CODE END TIM14_Init 2 */ |
|
| - | 556 | HAL_TIM_MspPostInit(&htim14); |
|
| - | 557 | ||
| - | 558 | } |
|
| - | 559 | ||
| - | 560 | /** |
|
| 493 | * @brief USART1 Initialization Function |
561 | * @brief USART1 Initialization Function |
| 494 | * @param None |
562 | * @param None |
| 495 | * @retval None |
563 | * @retval None |
| 496 | */ |
564 | */ |
| 497 | static void MX_USART1_UART_Init(void) |
565 | static void MX_USART1_UART_Init(void) |
| Line 551... | Line 619... | ||
| 551 | static void MX_GPIO_Init(void) |
619 | static void MX_GPIO_Init(void) |
| 552 | { |
620 | { |
| 553 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
621 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| 554 | 622 | ||
| 555 | /* GPIO Ports Clock Enable */ |
623 | /* GPIO Ports Clock Enable */ |
| - | 624 | __HAL_RCC_GPIOF_CLK_ENABLE(); |
|
| 556 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
625 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
| 557 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
626 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
| 558 | 627 | ||
| 559 | /*Configure GPIO pin Output Level */ |
628 | /*Configure GPIO pin Output Level */ |
| - | 629 | HAL_GPIO_WritePin(enable_current_GPIO_Port, enable_current_Pin, GPIO_PIN_RESET); |
|
| - | 630 | ||
| - | 631 | /*Configure GPIO pin Output Level */ |
|
| 560 | HAL_GPIO_WritePin(GPIOA, enableCurrent_Pin|step2N_Pin|step1N_Pin|step1P_Pin, GPIO_PIN_RESET); |
632 | HAL_GPIO_WritePin(GPIOA, step2N_Pin|step1N_Pin|step1P_Pin, GPIO_PIN_RESET); |
| 561 | 633 | ||
| 562 | /*Configure GPIO pin Output Level */ |
634 | /*Configure GPIO pin Output Level */ |
| 563 | HAL_GPIO_WritePin(step2P_GPIO_Port, step2P_Pin, GPIO_PIN_RESET); |
635 | HAL_GPIO_WritePin(step2P_GPIO_Port, step2P_Pin, GPIO_PIN_RESET); |
| 564 | 636 | ||
| - | 637 | /*Configure GPIO pin : enable_current_Pin */ |
|
| - | 638 | GPIO_InitStruct.Pin = enable_current_Pin; |
|
| - | 639 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
|
| - | 640 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
| - | 641 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
|
| - | 642 | HAL_GPIO_Init(enable_current_GPIO_Port, &GPIO_InitStruct); |
|
| - | 643 | ||
| 565 | /*Configure GPIO pins : enableCurrent_Pin step2N_Pin step1N_Pin step1P_Pin */ |
644 | /*Configure GPIO pins : step2N_Pin step1N_Pin step1P_Pin */ |
| 566 | GPIO_InitStruct.Pin = enableCurrent_Pin|step2N_Pin|step1N_Pin|step1P_Pin; |
645 | GPIO_InitStruct.Pin = step2N_Pin|step1N_Pin|step1P_Pin; |
| 567 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
646 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 568 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
647 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 569 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
648 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 570 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
649 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| 571 | 650 | ||
| Line 608... | Line 687... | ||
| 608 | /* User can add his own implementation to report the file name and line number, |
687 | /* User can add his own implementation to report the file name and line number, |
| 609 | tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
688 | tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
| 610 | /* USER CODE END 6 */ |
689 | /* USER CODE END 6 */ |
| 611 | } |
690 | } |
| 612 | #endif /* USE_FULL_ASSERT */ |
691 | #endif /* USE_FULL_ASSERT */ |
| 613 | - | ||
| 614 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
- | |