zoukankan      html  css  js  c++  java
  • 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();
      }
     
     
  • 相关阅读:
    Qt生成随机数
    Qt调用系统DLL,判断网络连接状态
    Qt操作sqlite数据库
    Qt 操作注册表
    vs报错:RC1004 unexpected end of file found
    Qt操作ini文件
    Django Admin:自动选择当前用户
    BSTR转QString
    vue-cli4,vue3打包后页面无内容
    Qt 5.12.10 国际化
  • 原文地址:https://www.cnblogs.com/yeshenmeng/p/11002599.html
Copyright © 2011-2022 走看看