common(3).c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /************************************************************************************************/
  2. /**
  3. * @file common.c
  4. * @author MCU Ecosystem Development Team
  5. * @brief 通用函数或本外设相关的配置实现函数。
  6. *
  7. *
  8. **************************************************************************************************
  9. * @attention
  10. * Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
  11. *
  12. **************************************************************************************************
  13. */
  14. /*------------------------------------------includes--------------------------------------------*/
  15. #include "common.h"
  16. /*------------------------------------------functions-------------------------------------------*/
  17. /**
  18. * @brief 系统时钟配置
  19. * @retval 无
  20. */
  21. void system_clock_config(void)
  22. {
  23. /* 设置Flash读访问等待时间 */
  24. std_flash_set_latency(FLASH_LATENCY_1CLK);
  25. /* 使能RCH */
  26. std_rcc_rch_enable();
  27. while(std_rcc_get_rch_ready() != RCC_CSR1_RCHRDY);
  28. /* 设置系统时钟源为RCH */
  29. std_rcc_set_sysclk_source(RCC_SYSCLK_SRC_RCH);
  30. while(std_rcc_get_sysclk_source() != RCC_SYSCLK_SRC_STATUS_RCH);
  31. /* 设置AHB分频因子 */
  32. std_rcc_set_ahbdiv(RCC_HCLK_DIV1);
  33. /* 设置APB分频因子 */
  34. std_rcc_set_apbdiv(RCC_PCLK_DIV1);
  35. /* 配置系统时钟全局变量 */
  36. SystemCoreClock = RCH_VALUE;
  37. }
  38. /**
  39. * @brief GPIO初始化
  40. * @retval 无
  41. */
  42. void gpio_init(void)
  43. {
  44. std_gpio_init_t gpio_config = {0};
  45. /* 使能LED对应的GPIO时钟 */
  46. std_rcc_gpio_clk_enable(RCC_PERIPH_CLK_GPIOB);
  47. std_rcc_gpio_clk_enable(RCC_PERIPH_CLK_GPIOA);
  48. /* 配置LED的IO */
  49. gpio_config.pin = LED_PIN;
  50. gpio_config.mode = GPIO_MODE_OUTPUT;
  51. gpio_config.pull = GPIO_NOPULL;
  52. gpio_config.output_type = GPIO_OUTPUT_PUSHPULL;
  53. std_gpio_init(GPIOA, &gpio_config);
  54. std_gpio_set_pin(LED_GPIO_PORT,LED_PIN);
  55. gpio_config.pin = GPIO_PIN_6; //PA2
  56. gpio_config.mode = GPIO_MODE_INPUT;
  57. gpio_config.pull = GPIO_PULLDOWN;
  58. std_gpio_init(GPIOB, &gpio_config);
  59. }