uuu000

3x1_7x1 handpiece

Aug 5th, 2023
1,307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 19.85 KB | Source Code | 0 0
  1. /* USER CODE BEGIN Header */
  2. /**
  3.   ******************************************************************************
  4.   * @file           : main.c
  5.   * @brief          : Main program body
  6.   ******************************************************************************
  7.   * @attention
  8.   *
  9.   * Copyright (c) 2023 STMicroelectronics.
  10.   * All rights reserved.
  11.   *
  12.   * This software is licensed under terms that can be found in the LICENSE file
  13.   * in the root directory of this software component.
  14.   * If no LICENSE file comes with this software, it is provided AS-IS.
  15.   *
  16.   ******************************************************************************
  17.   */
  18. /* USER CODE END Header */
  19. /* Includes ------------------------------------------------------------------*/
  20. #include "main.h"
  21.  
  22. /* Private includes ----------------------------------------------------------*/
  23. /* USER CODE BEGIN Includes */
  24. //void delay(uint32_t time)
  25. //{
  26. //while(time--) {};
  27. //}
  28. /* USER CODE END Includes */
  29.  
  30. /* Private typedef -----------------------------------------------------------*/
  31. /* USER CODE BEGIN PTD */
  32.  
  33. /* USER CODE END PTD */
  34.  
  35. /* Private define ------------------------------------------------------------*/
  36. /* USER CODE BEGIN PD */
  37.  
  38. /* USER CODE END PD */
  39.  
  40. /* Private macro -------------------------------------------------------------*/
  41. /* USER CODE BEGIN PM */
  42.  
  43. /* USER CODE END PM */
  44.  
  45. /* Private variables ---------------------------------------------------------*/
  46.  
  47. /* USER CODE BEGIN PV */
  48.     uint8_t timeDrebezg;         // время устойчивого состояния кнопки (* 2 мс)
  49.     _Bool flagPress = 0;   // признак кнопка в нажатом состоянии
  50.     _Bool flagClick = 0;   // признак нажатия кнопки (фронт)
  51.     uint8_t buttonCount = 0;        // счетчик подтверждений состояния кнопки
  52.     uint32_t  timme = 0;
  53.         _Bool flagPress1 = 0;   // признак кнопка в нажатом состоянии
  54.         _Bool flagClick1 = 0;   // признак нажатия кнопки (фронт)
  55.         uint8_t buttonCount1 = 0;        // счетчик подтверждений состояния кнопки
  56. /* USER CODE END PV */
  57.  
  58. /* Private function prototypes -----------------------------------------------*/
  59. void SystemClock_Config(void);
  60. static void MX_GPIO_Init(void);
  61. /* USER CODE BEGIN PFP */
  62.  
  63. /* USER CODE END PFP */
  64.  
  65. /* Private user code ---------------------------------------------------------*/
  66. /* USER CODE BEGIN 0 */
  67. void button_click_KA() {
  68.   /* блок обработки сигнала кнопки
  69.  * при нажатой кнопке flagPress= true
  70.  * при отжатой кнопке flagPress= false
  71.  * при нажатии на кнопку flagClick= true */
  72.   timeDrebezg = 10;
  73.   if (flagPress == (!HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1))) {
  74.     // признак flagPress = текущему состоянию кнопки
  75.     // (инверсия т.к. активное состояние кнопки LOW)
  76.     // т.е. состояние кнопки осталось прежним
  77.     buttonCount = 0;  // сброс счетчика подтверждений состояния кнопки
  78.   } else {
  79.     // признак flagPress не = текущему состоянию кнопки
  80.     // состояние кнопки изменилось
  81.     buttonCount++;  // +1 к счетчику состояния кнопки
  82.  
  83.     if (buttonCount >= timeDrebezg) {
  84.       // состояние кнопки не мянялось в течение заданного времени
  85.       // состояние кнопки стало устойчивым
  86.       flagPress = !flagPress;  // инверсия признака состояния
  87.       buttonCount = 0;         // сброс счетчика подтверждений состояния кнопки
  88.  
  89.       if (flagPress == 1) flagClick = 1;  // признак фронта кнопки на нажатие
  90.     }
  91.   }
  92.   HAL_Delay(2);// задержка на 2 мс
  93.  
  94. }
  95.  
  96. void button_click_KA1() {
  97.   /* блок обработки сигнала кнопки
  98.  * при нажатой кнопке flagPress= true
  99.  * при отжатой кнопке flagPress= false
  100.  * при нажатии на кнопку flagClick= true */
  101.   timeDrebezg = 10;
  102.   if (flagPress1 == (!HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_2))) {
  103.     // признак flagPress = текущему состоянию кнопки
  104.     // (инверсия т.к. активное состояние кнопки LOW)
  105.     // т.е. состояние кнопки осталось прежним
  106.     buttonCount1 = 0;  // сброс счетчика подтверждений состояния кнопки
  107.   } else {
  108.     // признак flagPress не = текущему состоянию кнопки
  109.     // состояние кнопки изменилось
  110.     buttonCount1++;  // +1 к счетчику состояния кнопки
  111.  
  112.     if (buttonCount1 >= timeDrebezg) {
  113.       // состояние кнопки не мянялось в течение заданного времени
  114.       // состояние кнопки стало устойчивым
  115.       flagPress1 = !flagPress1;  // инверсия признака состояния
  116.       buttonCount1 = 0;         // сброс счетчика подтверждений состояния кнопки
  117.  
  118.       if (flagPress1 == 1) flagClick1 = 1;  // признак фронта кнопки на нажатие
  119.     }
  120.   }
  121.   HAL_Delay(2);// задержка на 2 мс
  122.  
  123. }
  124.  
  125. void blink_click_KA(void) {
  126.   static uint8_t status=1;
  127.  
  128.   switch (status) {
  129.  
  130.     case 0:
  131.       if (flagClick == 1) {
  132.         // было нажатие кнопки
  133.         flagClick = 0;  // сброс признака фронта кнопки
  134.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);  // вывод состояния светодиода
  135.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);//вывод состояния светодиода
  136.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);  // вывод состояния светодиода
  137.         status = 1;
  138.  
  139.  
  140.  
  141.       }
  142.  
  143.       break;
  144.  
  145.  
  146.     case 1:
  147.       if (flagClick == 1) {
  148.         // было нажатие кнопки
  149.         flagClick = 0;  // сброс признака фронта кнопки
  150.  
  151.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);  // вывод состояния светодиода
  152.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET); // вывод состояния светодиода
  153.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET); // вывод состояния светодиода
  154.         status = 2;
  155.       }
  156.       break;
  157.  
  158.  
  159.     case 2:
  160.       if (flagClick == 1) {
  161.         // было нажатие кнопки
  162.         flagClick = 0;  // сброс признака фронта кнопки
  163.  
  164.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);   // вывод состояния светодиода
  165.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_SET);  // вывод состояния светодиода
  166.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);   // вывод состояния светодиода
  167.         status = 3;
  168.       }
  169.       break;
  170.  
  171.     case 3:
  172.       if (flagClick == 1) {
  173.         // было нажатие кнопки
  174.         flagClick = 0;  // сброс признака фронта кнопки
  175.  
  176.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);    // вывод состояния светодиода
  177.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  178.         HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  179.         status = 0;
  180.       }
  181.       break;
  182.  
  183.   }
  184. }
  185.  
  186.  
  187. void blink_click_KA1(void) {
  188.   static uint8_t status1=1;
  189.  
  190.   switch (status1) {
  191.  
  192.     case 0:
  193.       if (flagClick1 == 1) {
  194.         // было нажатие кнопки
  195.         flagClick1= 0;  // сброс признака фронта кнопки
  196.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 0);  // вывод состояния светодиода
  197.         //HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);//вывод состояния светодиода
  198.        // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);  // вывод состояния светодиода
  199.         status1 = 1;
  200.  
  201.  
  202.  
  203.       }
  204.  
  205.       break;
  206.  
  207.  
  208.     case 1:
  209.       if (flagClick1 == 1) {
  210.         // было нажатие кнопки
  211.         flagClick1 = 0;  // сброс признака фронта кнопки
  212.  
  213.         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);  // вывод состояния светодиода
  214.        // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET); // вывод состояния светодиода
  215.       //  HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET); // вывод состояния светодиода
  216.         status1 = 2;
  217.       }
  218.       break;
  219.  
  220.  
  221.     case 2:
  222.  
  223.       if (flagClick1 == 1) {
  224.         // было нажатие кнопки
  225.         flagClick1 = 0;  // сброс признака фронта кнопки
  226.  
  227.       HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3,0);  // вывод состояния светодиода
  228.        // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_SET);  // вывод состояния светодиода
  229.        // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);   // вывод состояния светодиода
  230.         status1 = 3;
  231.  
  232.  
  233.       }
  234.       break;
  235.  
  236.     case 3:
  237.         if((HAL_GetTick() - timme) > 1000) // интервал 1000мс = 1сек
  238.                                     {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
  239.                                       timme = HAL_GetTick();}
  240.         //HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_4); // инверсия вывода PC13
  241.                                  // HAL_Delay(500);
  242.                      // delay(5000);
  243.       if (flagClick1 == 1) {
  244.         // было нажатие кнопки
  245.         flagClick1 = 0;  // сброс признака фронта кнопки
  246.  
  247.        // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_1);  // вывод состояния светодиода
  248.        // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  249.        // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  250.         status1 = 4;
  251.       }
  252.       break;
  253.     case 4: if((HAL_GetTick() - timme) > 300) // интервал 1000мс = 1сек
  254.                                         {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
  255.                                           timme = HAL_GetTick();}
  256.           if (flagClick1 == 1) {
  257.             // было нажатие кнопки
  258.             flagClick1 = 0;  // сброс признака фронта кнопки
  259.  
  260.            // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_1);  // вывод состояния светодиода
  261.            // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  262.            // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  263.             status1 = 5;
  264.           }
  265.           break;
  266.  
  267.     case 5: if((HAL_GetTick() - timme) >100) // интервал 1000мс = 1сек
  268.                                         {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
  269.                                           timme = HAL_GetTick();}
  270.              if (flagClick1 == 1) {
  271.                // было нажатие кнопки
  272.                flagClick1 = 0;  // сброс признака фронта кнопки
  273.  
  274.               // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_1);  // вывод состояния светодиода
  275.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  276.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  277.                status1 = 6;
  278.              }
  279.              break;
  280.  
  281.     case 6: if((HAL_GetTick() - timme) > 50) // интервал 1000мс = 1сек
  282.                                         {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
  283.                                           timme = HAL_GetTick();}
  284.              if (flagClick1 == 1) {
  285.                // было нажатие кнопки
  286.                flagClick1 = 0;  // сброс признака фронта кнопки
  287.  
  288.               // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_1);  // вывод состояния светодиода
  289.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  290.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  291.                status1 = 7;
  292.              }
  293.              break;
  294.  
  295.     case 7: if((HAL_GetTick() - timme) > 30) // интервал 1000мс = 1сек
  296.                                         {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
  297.                                           timme = HAL_GetTick();}
  298.              if (flagClick1 == 1) {
  299.                // было нажатие кнопки
  300.                flagClick1 = 0;  // сброс признака фронта кнопки
  301.  
  302.               // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_1);  // вывод состояния светодиода
  303.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  304.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  305.                status1 = 8;
  306.              }
  307.              break;
  308.  
  309.     case 8: if((HAL_GetTick() - timme) > 15) // интервал 1000мс = 1сек
  310.                                         {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
  311.                                           timme = HAL_GetTick();}
  312.              if (flagClick1 == 1) {
  313.                // было нажатие кнопки
  314.                flagClick1 = 0;  // сброс признака фронта кнопки
  315.  
  316.               // HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_1);  // вывод состояния светодиода
  317.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_14, GPIO_PIN_RESET);    // вывод состояния светодиода
  318.               // HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);  // вывод состояния светодиода
  319.                status1 = 0;
  320.              }
  321.              break;
  322.  
  323.   }
  324. }
  325. /* USER CODE END 0 */
  326.  
  327. /**
  328.   * @brief  The application entry point.
  329.   * @retval int
  330.   */
  331. int main(void)
  332. {
  333.   /* USER CODE BEGIN 1 */
  334.  
  335.   /* USER CODE END 1 */
  336.  
  337.   /* MCU Configuration--------------------------------------------------------*/
  338.  
  339.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  340.   HAL_Init();
  341.  
  342.   /* USER CODE BEGIN Init */
  343.  
  344.   /* USER CODE END Init */
  345.  
  346.   /* Configure the system clock */
  347.   SystemClock_Config();
  348.  
  349.   /* USER CODE BEGIN SysInit */
  350.  
  351.   /* USER CODE END SysInit */
  352.  
  353.   /* Initialize all configured peripherals */
  354.   MX_GPIO_Init();
  355.   /* USER CODE BEGIN 2 */
  356.  
  357.   /* USER CODE END 2 */
  358.  
  359.   /* Infinite loop */
  360.   /* USER CODE BEGIN WHILE */
  361.   while (1)
  362.   {    button_click_KA();
  363.       blink_click_KA();
  364.       button_click_KA1();
  365.           blink_click_KA1();
  366.       // if( HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1) == GPIO_PIN_SET ) {
  367.         // на выводе PA1 высокий уровень
  368.     //HAL_GPIO_WritePin(led13_GPIO_Port, led13_Pin, GPIO_PIN_SET);
  369.         // HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // инверсия вывода PC13
  370.                 //  HAL_Delay(1000);
  371.     //}
  372.     //else {
  373.         // на выводе PA1 низкий уровень
  374.         // HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); // инверсия вывода PC13
  375.              // HAL_Delay(200);
  376.  
  377.  
  378.     /* USER CODE END WHILE */
  379.  
  380.     /* USER CODE BEGIN 3 */
  381.   }
  382.   /* USER CODE END 3 */
  383. }
  384.  
  385. /**
  386.   * @brief System Clock Configuration
  387.   * @retval None
  388.   */
  389. void SystemClock_Config(void)
  390. {
  391.   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  392.   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  393.  
  394.   /** Initializes the RCC Oscillators according to the specified parameters
  395.   * in the RCC_OscInitTypeDef structure.
  396.   */
  397.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  398.   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  399.   RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  400.   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  401.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  402.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  403.   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL2;
  404.   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  405.   {
  406.     Error_Handler();
  407.   }
  408.  
  409.   /** Initializes the CPU, AHB and APB buses clocks
  410.   */
  411.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  412.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  413.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  414.   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2;
  415.   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  416.   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  417.  
  418.   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
  419.   {
  420.     Error_Handler();
  421.   }
  422. }
  423.  
  424. /**
  425.   * @brief GPIO Initialization Function
  426.   * @param None
  427.   * @retval None
  428.   */
  429. static void MX_GPIO_Init(void)
  430. {
  431.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  432. /* USER CODE BEGIN MX_GPIO_Init_1 */
  433. /* USER CODE END MX_GPIO_Init_1 */
  434.  
  435.   /* GPIO Ports Clock Enable */
  436.   __HAL_RCC_GPIOC_CLK_ENABLE();
  437.   __HAL_RCC_GPIOD_CLK_ENABLE();
  438.   __HAL_RCC_GPIOA_CLK_ENABLE();
  439.  
  440.   /*Configure GPIO pin Output Level */
  441.   HAL_GPIO_WritePin(GPIOC, led13_Pin|led14_Pin|led15_Pin, GPIO_PIN_RESET);
  442.  
  443.   /*Configure GPIO pin Output Level */
  444.   HAL_GPIO_WritePin(GPIOA, led3_Pin|GPIO_PIN_4, GPIO_PIN_RESET);
  445.  
  446.   /*Configure GPIO pins : led13_Pin led14_Pin led15_Pin */
  447.   GPIO_InitStruct.Pin = led13_Pin|led14_Pin|led15_Pin;
  448.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  449.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  450.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  451.   HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  452.  
  453.   /*Configure GPIO pins : butt1_Pin butt2_Pin */
  454.   GPIO_InitStruct.Pin = butt1_Pin|butt2_Pin;
  455.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  456.   GPIO_InitStruct.Pull = GPIO_PULLUP;
  457.   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  458.  
  459.   /*Configure GPIO pins : led3_Pin PA4 */
  460.   GPIO_InitStruct.Pin = led3_Pin|GPIO_PIN_4;
  461.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  462.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  463.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  464.   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  465.  
  466. /* USER CODE BEGIN MX_GPIO_Init_2 */
  467. /* USER CODE END MX_GPIO_Init_2 */
  468. }
  469.  
  470. /* USER CODE BEGIN 4 */
  471.  
  472. /* USER CODE END 4 */
  473.  
  474. /**
  475.   * @brief  This function is executed in case of error occurrence.
  476.   * @retval None
  477.   */
  478. void Error_Handler(void)
  479. {
  480.   /* USER CODE BEGIN Error_Handler_Debug */
  481.   /* User can add his own implementation to report the HAL error return state */
  482.   __disable_irq();
  483.   while (1)
  484.   {
  485.   }
  486.   /* USER CODE END Error_Handler_Debug */
  487. }
  488.  
  489. #ifdef  USE_FULL_ASSERT
  490. /**
  491.   * @brief  Reports the name of the source file and the source line number
  492.   *         where the assert_param error has occurred.
  493.   * @param  file: pointer to the source file name
  494.   * @param  line: assert_param error line source number
  495.   * @retval None
  496.   */
  497. void assert_failed(uint8_t *file, uint32_t line)
  498. {
  499.   /* USER CODE BEGIN 6 */
  500.   /* User can add his own implementation to report the file name and line number,
  501.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  502.   /* USER CODE END 6 */
  503. }
  504. #endif /* USE_FULL_ASSERT */
  505.  
Tags: STM32
Advertisement
Add Comment
Please, Sign In to add comment