board.c 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * Copyright (c) 2006-2018, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2018-11-06 balanceTWK first version
  9. */
  10. #include "board.h"
  11. void SystemClock_Config(void)
  12. {
  13. RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  14. RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  15. RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
  16. /** Configure the main internal regulator output voltage
  17. */
  18. __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  19. /** Initializes the CPU, AHB and APB busses clocks
  20. */
  21. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE;
  22. RCC_OscInitStruct.LSEState = RCC_LSE_ON;
  23. RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  24. RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  25. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  26. RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  27. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
  28. RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3;
  29. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  30. {
  31. Error_Handler();
  32. }
  33. /** Initializes the CPU, AHB and APB busses clocks
  34. */
  35. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  36. |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  37. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  38. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  39. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  40. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  41. if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
  42. {
  43. Error_Handler();
  44. }
  45. PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;
  46. PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
  47. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
  48. {
  49. Error_Handler();
  50. }
  51. }
  52. #ifdef RT_USING_USB_DEVICE
  53. void HAL_PCD_MspInit(PCD_HandleTypeDef* pcdHandle)
  54. {
  55. if(pcdHandle->Instance==USB)
  56. {
  57. /* USER CODE BEGIN USB_MspInit 0 */
  58. /* USER CODE END USB_MspInit 0 */
  59. /* Peripheral clock enable */
  60. __HAL_RCC_USB_CLK_ENABLE();
  61. /* Peripheral interrupt init */
  62. HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0);
  63. HAL_NVIC_EnableIRQ(USB_LP_IRQn);
  64. /* USER CODE BEGIN USB_MspInit 1 */
  65. /* USER CODE END USB_MspInit 1 */
  66. }
  67. }
  68. void HAL_PCD_MspDeInit(PCD_HandleTypeDef* pcdHandle)
  69. {
  70. if(pcdHandle->Instance==USB)
  71. {
  72. /* USER CODE BEGIN USB_MspDeInit 0 */
  73. /* USER CODE END USB_MspDeInit 0 */
  74. /* Peripheral clock disable */
  75. __HAL_RCC_USB_CLK_DISABLE();
  76. /* Peripheral interrupt Deinit*/
  77. HAL_NVIC_DisableIRQ(USB_LP_IRQn);
  78. /* USER CODE BEGIN USB_MspDeInit 1 */
  79. /* USER CODE END USB_MspDeInit 1 */
  80. }
  81. }
  82. #endif