• STM32WB 振荡器与时钟


    一、振荡器类型与配置

    1、振荡器类型:LSE、LSI1、LSI2、MSI、HSI、HSI48、HSE

    2、MX中的振荡器配置

    3、代码配置样例

      RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI1
                                  |RCC_OSCILLATORTYPE_HSE;
      RCC_OscInitStruct.HSEState = RCC_HSE_ON;
      RCC_OscInitStruct.HSIState = RCC_HSI_ON;
      RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
      RCC_OscInitStruct.LSIState = RCC_LSI_ON;
      RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
      if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
      {
        Error_Handler();
      }

    二、系统总线时钟与配置

    1、总线时钟:SYSCLK、HCLK、HCLK2、HCLK4、PCLK1、PCLK2

    2、MX中的总线时钟配置

    3、代码配置样例

      RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK4|RCC_CLOCKTYPE_HCLK2
                                  |RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                                  |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
      RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
      RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
      RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
      RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
      RCC_ClkInitStruct.AHBCLK2Divider = RCC_SYSCLK_DIV1;
      RCC_ClkInitStruct.AHBCLK4Divider = RCC_SYSCLK_DIV1;
      if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
      {
        Error_Handler();
      }

    三、PLL时钟与配置

    1、PLL时钟源选择:MSI、HSI、HSE或者NONE

    2、PLL分频参数:PLLM、PLLN、PLLP、PLLQ、PLLR

    3、MX中的PLL配置

    四、外设时钟类型与时钟源配置

    1、外设时钟类型:CLK_USART1、CLK_LPUART1、CLK_I2C1、CLK_I2C3、CLK_LPTIM1、CLK_LPTIM2、CLK_SAI1、CLK_USB、CLK_RNG、CLK_ADC、CLK_RTC/LCD、CLK_RFWAKEUP、CLK_SMPS

    2、MX中的外设时钟源配置

     1)PLLSAI1时钟配置

    2)USART1时钟源配置

    3)LPUART1时钟源配置

    4)I2C1时钟源配置

     

    5)I2C3时钟源配置

    6)LPTIM1时钟源配置

     

    7)LPTIM2时钟源配置

     

    8)SAI1时钟源配置

    9)USB时钟源配置

     

    10)RNG时钟源配置

    11)ADC时钟源配置

     

    12)RFWAKEUP时钟源配置

     

    13)SMPS时钟源配置

     

    14)RTC/LCD时钟源配置

     

    3、代码配置样例

      PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
                                  |RCC_PERIPHCLK_RTC;
      PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
      PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSI;
      PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
      PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
      if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
     
     
  • 相关阅读:
    【转】Install libimobiledevice on Mac OSX
    【转】Mac端包管理工具——Homebrew简介及安装
    Appium的安装-Mac平台(命令行 & dmg)
    【转】NO.3、python+appium+ios,遍历真机元素,得到webview
    【转】NO.2、Appium之IOS第一个demo
    【转】NO.1、 appium之ios环境搭建
    如何在 iOS 真机运行 Appium
    【转】adb shell dumpsys 命令
    Mac下抓包工具charles及破解方法
    2017.08 笔记
  • 原文地址:https://www.cnblogs.com/yeshenmeng/p/11002599.html
Copyright © 2020-2023  润新知