Rev 12 | Rev 14 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 12 | Rev 13 | ||
|---|---|---|---|
| Line 44... | Line 44... | ||
| 44 | /* USER CODE BEGIN PM */ |
44 | /* USER CODE BEGIN PM */ |
| 45 | 45 | ||
| 46 | /* USER CODE END PM */ |
46 | /* USER CODE END PM */ |
| 47 | 47 | ||
| 48 | /* Private variables ---------------------------------------------------------*/ |
48 | /* Private variables ---------------------------------------------------------*/ |
| 49 | CAN_HandleTypeDef hcan; |
49 | CAN_HandleTypeDef hcan; |
| 50 | 50 | ||
| 51 | I2C_HandleTypeDef hi2c1; |
51 | I2C_HandleTypeDef hi2c1; |
| 52 | 52 | ||
| 53 | IWDG_HandleTypeDef hiwdg; |
53 | IWDG_HandleTypeDef hiwdg; |
| 54 | 54 | ||
| Line 125... | Line 125... | ||
| 125 | } |
125 | } |
| 126 | 126 | ||
| 127 | /* USER CODE END 0 */ |
127 | /* USER CODE END 0 */ |
| 128 | 128 | ||
| 129 | /** |
129 | /** |
| 130 | * @brief The application entry point. |
130 | * @brief The application entry point. |
| 131 | * @retval int |
131 | * @retval int |
| 132 | */ |
132 | */ |
| 133 | int main(void) |
133 | int main(void) |
| 134 | { |
134 | { |
| 135 | /* USER CODE BEGIN 1 */ |
135 | /* USER CODE BEGIN 1 */ |
| 136 | 136 | ||
| 137 | /* USER CODE END 1 */ |
137 | /* USER CODE END 1 */ |
| Line 211... | Line 211... | ||
| 211 | int button = HAL_GPIO_ReadPin(PUSHBUTTON_GPIO_Port, PUSHBUTTON_Pin) == GPIO_PIN_RESET; |
211 | int button = HAL_GPIO_ReadPin(PUSHBUTTON_GPIO_Port, PUSHBUTTON_Pin) == GPIO_PIN_RESET; |
| 212 | 212 | ||
| 213 | if (button) |
213 | if (button) |
| 214 | { |
214 | { |
| 215 | intensity = 2; |
215 | intensity = 2; |
| 216 | displayOff = lastTick + 10000; |
216 | displayOff = lastTick + 30000; |
| 217 | } |
217 | } |
| 218 | 218 | ||
| 219 | switch (intensity) |
219 | switch (intensity) |
| 220 | { |
220 | { |
| 221 | case 2: |
221 | case 2: |
| Line 232... | Line 232... | ||
| 232 | intensity = 1; // was 0 |
232 | intensity = 1; // was 0 |
| 233 | } |
233 | } |
| 234 | default: |
234 | default: |
| 235 | break; |
235 | break; |
| 236 | } |
236 | } |
| 237 | cc_display(0, intensity); |
237 | cc_display(0, intensity, 0); |
| 238 | 238 | ||
| 239 | if (HAL_GetTick() - lastTick > T100MS) |
239 | if (HAL_GetTick() - lastTick > T100MS) |
| 240 | { |
240 | { |
| 241 | lastTick = HAL_GetTick(); |
241 | lastTick = HAL_GetTick(); |
| 242 | /* Reading the raw data from sensor */ |
242 | /* Reading the raw data from sensor */ |
| Line 339... | Line 339... | ||
| 339 | } |
339 | } |
| 340 | /* USER CODE END 3 */ |
340 | /* USER CODE END 3 */ |
| 341 | } |
341 | } |
| 342 | 342 | ||
| 343 | /** |
343 | /** |
| 344 | * @brief System Clock Configuration |
344 | * @brief System Clock Configuration |
| 345 | * @retval None |
345 | * @retval None |
| 346 | */ |
346 | */ |
| 347 | void SystemClock_Config(void) |
347 | void SystemClock_Config(void) |
| 348 | { |
348 | { |
| 349 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
349 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
| 350 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
350 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
| 351 | 351 | ||
| 352 | /** Initializes the RCC Oscillators according to the specified parameters |
352 | /** Initializes the RCC Oscillators according to the specified parameters |
| 353 | * in the RCC_OscInitTypeDef structure. |
353 | * in the RCC_OscInitTypeDef structure. |
| 354 | */ |
354 | */ |
| 355 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSE; |
355 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; |
| 356 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
356 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
| 357 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
357 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
| 358 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
358 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
| 359 | RCC_OscInitStruct.LSIState = RCC_LSI_ON; |
359 | RCC_OscInitStruct.LSIState = RCC_LSI_ON; |
| 360 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
360 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
| Line 364... | Line 364... | ||
| 364 | { |
364 | { |
| 365 | Error_Handler(); |
365 | Error_Handler(); |
| 366 | } |
366 | } |
| 367 | 367 | ||
| 368 | /** Initializes the CPU, AHB and APB buses clocks |
368 | /** Initializes the CPU, AHB and APB buses clocks |
| 369 | */ |
369 | */ |
| 370 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; |
370 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
| - | 371 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |
|
| 371 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
372 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
| 372 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
373 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
| 373 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
374 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
| 374 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
375 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
| 375 | 376 | ||
| Line 378... | Line 379... | ||
| 378 | Error_Handler(); |
379 | Error_Handler(); |
| 379 | } |
380 | } |
| 380 | } |
381 | } |
| 381 | 382 | ||
| 382 | /** |
383 | /** |
| 383 | * @brief CAN Initialization Function |
384 | * @brief CAN Initialization Function |
| 384 | * @param None |
385 | * @param None |
| 385 | * @retval None |
386 | * @retval None |
| 386 | */ |
387 | */ |
| 387 | static void MX_CAN_Init(void) |
388 | static void MX_CAN_Init(void) |
| 388 | { |
389 | { |
| 389 | 390 | ||
| 390 | /* USER CODE BEGIN CAN_Init 0 */ |
391 | /* USER CODE BEGIN CAN_Init 0 */ |
| 391 | 392 | ||
| Line 411... | Line 412... | ||
| 411 | Error_Handler(); |
412 | Error_Handler(); |
| 412 | } |
413 | } |
| 413 | /* USER CODE BEGIN CAN_Init 2 */ |
414 | /* USER CODE BEGIN CAN_Init 2 */ |
| 414 | 415 | ||
| 415 | /* USER CODE END CAN_Init 2 */ |
416 | /* USER CODE END CAN_Init 2 */ |
| - | 417 | ||
| 416 | } |
418 | } |
| 417 | 419 | ||
| 418 | /** |
420 | /** |
| 419 | * @brief I2C1 Initialization Function |
421 | * @brief I2C1 Initialization Function |
| 420 | * @param None |
422 | * @param None |
| 421 | * @retval None |
423 | * @retval None |
| 422 | */ |
424 | */ |
| 423 | static void MX_I2C1_Init(void) |
425 | static void MX_I2C1_Init(void) |
| 424 | { |
426 | { |
| 425 | 427 | ||
| 426 | /* USER CODE BEGIN I2C1_Init 0 */ |
428 | /* USER CODE BEGIN I2C1_Init 0 */ |
| 427 | 429 | ||
| Line 444... | Line 446... | ||
| 444 | Error_Handler(); |
446 | Error_Handler(); |
| 445 | } |
447 | } |
| 446 | /* USER CODE BEGIN I2C1_Init 2 */ |
448 | /* USER CODE BEGIN I2C1_Init 2 */ |
| 447 | 449 | ||
| 448 | /* USER CODE END I2C1_Init 2 */ |
450 | /* USER CODE END I2C1_Init 2 */ |
| - | 451 | ||
| 449 | } |
452 | } |
| 450 | 453 | ||
| 451 | /** |
454 | /** |
| 452 | * @brief IWDG Initialization Function |
455 | * @brief IWDG Initialization Function |
| 453 | * @param None |
456 | * @param None |
| 454 | * @retval None |
457 | * @retval None |
| 455 | */ |
458 | */ |
| 456 | static void MX_IWDG_Init(void) |
459 | static void MX_IWDG_Init(void) |
| 457 | { |
460 | { |
| 458 | 461 | ||
| 459 | /* USER CODE BEGIN IWDG_Init 0 */ |
462 | /* USER CODE BEGIN IWDG_Init 0 */ |
| 460 | 463 | ||
| Line 471... | Line 474... | ||
| 471 | Error_Handler(); |
474 | Error_Handler(); |
| 472 | } |
475 | } |
| 473 | /* USER CODE BEGIN IWDG_Init 2 */ |
476 | /* USER CODE BEGIN IWDG_Init 2 */ |
| 474 | 477 | ||
| 475 | /* USER CODE END IWDG_Init 2 */ |
478 | /* USER CODE END IWDG_Init 2 */ |
| - | 479 | ||
| 476 | } |
480 | } |
| 477 | 481 | ||
| 478 | /** |
482 | /** |
| 479 | * @brief SPI1 Initialization Function |
483 | * @brief SPI1 Initialization Function |
| 480 | * @param None |
484 | * @param None |
| 481 | * @retval None |
485 | * @retval None |
| 482 | */ |
486 | */ |
| 483 | static void MX_SPI1_Init(void) |
487 | static void MX_SPI1_Init(void) |
| 484 | { |
488 | { |
| 485 | 489 | ||
| 486 | /* USER CODE BEGIN SPI1_Init 0 */ |
490 | /* USER CODE BEGIN SPI1_Init 0 */ |
| 487 | 491 | ||
| Line 493... | Line 497... | ||
| 493 | /* SPI1 parameter configuration*/ |
497 | /* SPI1 parameter configuration*/ |
| 494 | hspi1.Instance = SPI1; |
498 | hspi1.Instance = SPI1; |
| 495 | hspi1.Init.Mode = SPI_MODE_MASTER; |
499 | hspi1.Init.Mode = SPI_MODE_MASTER; |
| 496 | hspi1.Init.Direction = SPI_DIRECTION_2LINES; |
500 | hspi1.Init.Direction = SPI_DIRECTION_2LINES; |
| 497 | hspi1.Init.DataSize = SPI_DATASIZE_8BIT; |
501 | hspi1.Init.DataSize = SPI_DATASIZE_8BIT; |
| 498 | hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; |
502 | hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH; |
| 499 | hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; |
503 | hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; |
| 500 | hspi1.Init.NSS = SPI_NSS_SOFT; |
504 | hspi1.Init.NSS = SPI_NSS_SOFT; |
| 501 | hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64; |
505 | hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64; |
| 502 | hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; |
506 | hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; |
| 503 | hspi1.Init.TIMode = SPI_TIMODE_DISABLE; |
507 | hspi1.Init.TIMode = SPI_TIMODE_DISABLE; |
| 504 | hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
508 | hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
| Line 508... | Line 512... | ||
| 508 | Error_Handler(); |
512 | Error_Handler(); |
| 509 | } |
513 | } |
| 510 | /* USER CODE BEGIN SPI1_Init 2 */ |
514 | /* USER CODE BEGIN SPI1_Init 2 */ |
| 511 | 515 | ||
| 512 | /* USER CODE END SPI1_Init 2 */ |
516 | /* USER CODE END SPI1_Init 2 */ |
| - | 517 | ||
| 513 | } |
518 | } |
| 514 | 519 | ||
| 515 | /** |
520 | /** |
| 516 | * @brief TIM1 Initialization Function |
521 | * @brief TIM1 Initialization Function |
| 517 | * @param None |
522 | * @param None |
| 518 | * @retval None |
523 | * @retval None |
| 519 | */ |
524 | */ |
| 520 | static void MX_TIM1_Init(void) |
525 | static void MX_TIM1_Init(void) |
| 521 | { |
526 | { |
| 522 | 527 | ||
| 523 | /* USER CODE BEGIN TIM1_Init 0 */ |
528 | /* USER CODE BEGIN TIM1_Init 0 */ |
| 524 | 529 | ||
| Line 586... | Line 591... | ||
| 586 | } |
591 | } |
| 587 | /* USER CODE BEGIN TIM1_Init 2 */ |
592 | /* USER CODE BEGIN TIM1_Init 2 */ |
| 588 | 593 | ||
| 589 | /* USER CODE END TIM1_Init 2 */ |
594 | /* USER CODE END TIM1_Init 2 */ |
| 590 | HAL_TIM_MspPostInit(&htim1); |
595 | HAL_TIM_MspPostInit(&htim1); |
| - | 596 | ||
| 591 | } |
597 | } |
| 592 | 598 | ||
| 593 | /** |
599 | /** |
| 594 | * @brief TIM2 Initialization Function |
600 | * @brief TIM2 Initialization Function |
| 595 | * @param None |
601 | * @param None |
| 596 | * @retval None |
602 | * @retval None |
| 597 | */ |
603 | */ |
| 598 | static void MX_TIM2_Init(void) |
604 | static void MX_TIM2_Init(void) |
| 599 | { |
605 | { |
| 600 | 606 | ||
| 601 | /* USER CODE BEGIN TIM2_Init 0 */ |
607 | /* USER CODE BEGIN TIM2_Init 0 */ |
| 602 | 608 | ||
| Line 649... | Line 655... | ||
| 649 | Error_Handler(); |
655 | Error_Handler(); |
| 650 | } |
656 | } |
| 651 | /* USER CODE BEGIN TIM2_Init 2 */ |
657 | /* USER CODE BEGIN TIM2_Init 2 */ |
| 652 | 658 | ||
| 653 | /* USER CODE END TIM2_Init 2 */ |
659 | /* USER CODE END TIM2_Init 2 */ |
| - | 660 | ||
| 654 | } |
661 | } |
| 655 | 662 | ||
| 656 | /** |
663 | /** |
| 657 | * @brief TIM3 Initialization Function |
664 | * @brief TIM3 Initialization Function |
| 658 | * @param None |
665 | * @param None |
| 659 | * @retval None |
666 | * @retval None |
| 660 | */ |
667 | */ |
| 661 | static void MX_TIM3_Init(void) |
668 | static void MX_TIM3_Init(void) |
| 662 | { |
669 | { |
| 663 | 670 | ||
| 664 | /* USER CODE BEGIN TIM3_Init 0 */ |
671 | /* USER CODE BEGIN TIM3_Init 0 */ |
| 665 | 672 | ||
| Line 693... | Line 700... | ||
| 693 | Error_Handler(); |
700 | Error_Handler(); |
| 694 | } |
701 | } |
| 695 | /* USER CODE BEGIN TIM3_Init 2 */ |
702 | /* USER CODE BEGIN TIM3_Init 2 */ |
| 696 | 703 | ||
| 697 | /* USER CODE END TIM3_Init 2 */ |
704 | /* USER CODE END TIM3_Init 2 */ |
| - | 705 | ||
| 698 | } |
706 | } |
| 699 | 707 | ||
| 700 | /** |
708 | /** |
| 701 | * @brief USART2 Initialization Function |
709 | * @brief USART2 Initialization Function |
| 702 | * @param None |
710 | * @param None |
| 703 | * @retval None |
711 | * @retval None |
| 704 | */ |
712 | */ |
| 705 | static void MX_USART2_UART_Init(void) |
713 | static void MX_USART2_UART_Init(void) |
| 706 | { |
714 | { |
| 707 | 715 | ||
| 708 | /* USER CODE BEGIN USART2_Init 0 */ |
716 | /* USER CODE BEGIN USART2_Init 0 */ |
| 709 | 717 | ||
| Line 725... | Line 733... | ||
| 725 | Error_Handler(); |
733 | Error_Handler(); |
| 726 | } |
734 | } |
| 727 | /* USER CODE BEGIN USART2_Init 2 */ |
735 | /* USER CODE BEGIN USART2_Init 2 */ |
| 728 | 736 | ||
| 729 | /* USER CODE END USART2_Init 2 */ |
737 | /* USER CODE END USART2_Init 2 */ |
| - | 738 | ||
| 730 | } |
739 | } |
| 731 | 740 | ||
| 732 | /** |
741 | /** |
| 733 | * @brief GPIO Initialization Function |
742 | * @brief GPIO Initialization Function |
| 734 | * @param None |
743 | * @param None |
| 735 | * @retval None |
744 | * @retval None |
| 736 | */ |
745 | */ |
| 737 | static void MX_GPIO_Init(void) |
746 | static void MX_GPIO_Init(void) |
| 738 | { |
747 | { |
| 739 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
748 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| 740 | 749 | ||
| 741 | /* GPIO Ports Clock Enable */ |
750 | /* GPIO Ports Clock Enable */ |
| 742 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
751 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
| 743 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
752 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
| 744 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
753 | __HAL_RCC_GPIOB_CLK_ENABLE(); |
| 745 | 754 | ||
| 746 | /*Configure GPIO pin Output Level */ |
755 | /*Configure GPIO pin Output Level */ |
| 747 | HAL_GPIO_WritePin(GPIOA, SPI1_NSS_Pin | SPI1_RESET_Pin, GPIO_PIN_RESET); |
756 | HAL_GPIO_WritePin(GPIOA, SPI1_NSS_Pin|SPI1_RESET_Pin, GPIO_PIN_RESET); |
| 748 | 757 | ||
| 749 | /*Configure GPIO pin Output Level */ |
758 | /*Configure GPIO pin Output Level */ |
| 750 | HAL_GPIO_WritePin(SPI1_CD_GPIO_Port, SPI1_CD_Pin, GPIO_PIN_RESET); |
759 | HAL_GPIO_WritePin(SPI1_CD_GPIO_Port, SPI1_CD_Pin, GPIO_PIN_RESET); |
| 751 | 760 | ||
| 752 | /*Configure GPIO pins : SPI1_NSS_Pin SPI1_RESET_Pin */ |
761 | /*Configure GPIO pins : SPI1_NSS_Pin SPI1_RESET_Pin */ |
| 753 | GPIO_InitStruct.Pin = SPI1_NSS_Pin | SPI1_RESET_Pin; |
762 | GPIO_InitStruct.Pin = SPI1_NSS_Pin|SPI1_RESET_Pin; |
| 754 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
763 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 755 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
764 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 756 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
765 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 757 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
766 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
| 758 | 767 | ||
| Line 772... | Line 781... | ||
| 772 | /*Configure GPIO pin : dualSpark_Pin */ |
781 | /*Configure GPIO pin : dualSpark_Pin */ |
| 773 | GPIO_InitStruct.Pin = dualSpark_Pin; |
782 | GPIO_InitStruct.Pin = dualSpark_Pin; |
| 774 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
783 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
| 775 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
784 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
| 776 | HAL_GPIO_Init(dualSpark_GPIO_Port, &GPIO_InitStruct); |
785 | HAL_GPIO_Init(dualSpark_GPIO_Port, &GPIO_InitStruct); |
| - | 786 | ||
| 777 | } |
787 | } |
| 778 | 788 | ||
| 779 | /* USER CODE BEGIN 4 */ |
789 | /* USER CODE BEGIN 4 */ |
| 780 | 790 | ||
| 781 | /* USER CODE END 4 */ |
791 | /* USER CODE END 4 */ |
| 782 | 792 | ||
| 783 | /** |
793 | /** |
| 784 | * @brief This function is executed in case of error occurrence. |
794 | * @brief This function is executed in case of error occurrence. |
| 785 | * @retval None |
795 | * @retval None |
| 786 | */ |
796 | */ |
| 787 | void Error_Handler(void) |
797 | void Error_Handler(void) |
| 788 | { |
798 | { |
| 789 | /* USER CODE BEGIN Error_Handler_Debug */ |
799 | /* USER CODE BEGIN Error_Handler_Debug */ |
| 790 | /* User can add his own implementation to report the HAL error return state */ |
800 | /* User can add his own implementation to report the HAL error return state */ |
| 791 | __disable_irq(); |
801 | __disable_irq(); |
| Line 793... | Line 803... | ||
| 793 | { |
803 | { |
| 794 | } |
804 | } |
| 795 | /* USER CODE END Error_Handler_Debug */ |
805 | /* USER CODE END Error_Handler_Debug */ |
| 796 | } |
806 | } |
| 797 | 807 | ||
| 798 | #ifdef USE_FULL_ASSERT |
808 | #ifdef USE_FULL_ASSERT |
| 799 | /** |
809 | /** |
| 800 | * @brief Reports the name of the source file and the source line number |
810 | * @brief Reports the name of the source file and the source line number |
| 801 | * where the assert_param error has occurred. |
811 | * where the assert_param error has occurred. |
| 802 | * @param file: pointer to the source file name |
812 | * @param file: pointer to the source file name |
| 803 | * @param line: assert_param error line source number |
813 | * @param line: assert_param error line source number |
| 804 | * @retval None |
814 | * @retval None |
| 805 | */ |
815 | */ |
| 806 | void assert_failed(uint8_t *file, uint32_t line) |
816 | void assert_failed(uint8_t *file, uint32_t line) |
| 807 | { |
817 | { |
| 808 | /* USER CODE BEGIN 6 */ |
818 | /* USER CODE BEGIN 6 */ |
| 809 | /* User can add his own implementation to report the file name and line number, |
819 | /* User can add his own implementation to report the file name and line number, |
| 810 | ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
820 | ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |