STM32G474xx HAL 用户手册
stm32g4xx_ll_utils.h
跳转到此文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_ll_utils.h
00004   * @author  MCD Application Team
00005   * @brief   UTILS LL 模块的头文件。
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * 版权所有 (c) 2019 STMicroelectronics。
00010   * 保留所有权利。
00011   *
00012   * 本软件根据 LICENSE 文件中规定的条款进行许可,
00013   * 该文件位于本软件组件的根目录中。
00014   * 如果与本软件一起没有提供 LICENSE 文件,则按“原样”提供。
00015   *
00016   ******************************************************************************
00017   @verbatim
00018   ==============================================================================
00019                      ##### 如何使用此驱动程序 #####
00020   ==============================================================================
00021     [..]
00022     LL UTILS 驱动程序包含一组通用 API,可供用户使用:
00023     (+)设备电子签名
00024     (+)定时功能
00025     (+)PLL 配置功能
00026 
00027   @endverbatim
00028   */
00029 
00030 /* 防止重复包含的定义 -------------------------------------*/
00031 #ifndef STM32G4xx_LL_UTILS_H
00032 #define STM32G4xx_LL_UTILS_H
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00038 /* 包含文件 ------------------------------------------------------------------*/
00039 #include "stm32g4xx.h"
00040 
00041 /** @addtogroup STM32G4xx_LL_Driver
00042   * @{
00043   */
00044 
00045 /** @defgroup UTILS_LL UTILS
00046   * @{
00047   */
00048 
00049 /* 私有类型 -------------------------------------------------------------*/
00050 /* 私有变量 ---------------------------------------------------------*/
00051 
00052 /* 私有常量 ---------------------------------------------------------*/
00053 /** @defgroup UTILS_LL_Private_Constants UTILS 私有常量
00054   * @{
00055   */
00056 
00057 /* LL_mDelay 中可使用的最大延迟 */
00058 #define LL_MAX_DELAY                  0xFFFFFFFFU
00059 
00060 /**
00061  * @brief 唯一设备 ID 寄存器基地址
00062  */
00063 #define UID_BASE_ADDRESS              UID_BASE
00064 
00065 /**
00066  * @brief Flash 大小数据寄存器基地址
00067  */
00068 #define FLASHSIZE_BASE_ADDRESS        FLASHSIZE_BASE
00069 
00070 /**
00071  * @brief 封装数据寄存器基地址
00072  */
00073 #define PACKAGE_BASE_ADDRESS          PACKAGE_BASE
00074 
00075 /**
00076   * @}
00077   */
00078 
00079 /* 私有宏 ------------------------------------------------------------*/
00080 /** @defgroup UTILS_LL_Private_Macros UTILS 私有宏
00081   * @{
00082   */
00083 /**
00084   * @}
00085   */
00086 /* 导出的类型 ------------------------------------------------------------*/
00087 /** @defgroup UTILS_LL_ES_INIT UTILS 导出的结构体
00088   * @{
00089   */
00090 /**
00091   * @brief  UTILS PLL 结构体定义
00092   */
00093 typedef struct
00094 {
00095   uint32_t PLLM;   /*!< PLL VCO 输入时钟的分频因子。
00096                         该参数可以是 @ref RCC_LL_EC_PLLM_DIV 的值
00097 
00098                         之后可使用独立函数
00099                         @ref LL_RCC_PLL_ConfigDomain_SYS() 进行修改。 */
00100 
00101   uint32_t PLLN;   /*!< PLL VCO 输出时钟的倍频因子。
00102                         该参数必须是一个介于 Min_Data = 8 和 Max_Data = 86 之间的数字
00103 
00104                         之后可使用独立函数
00105                         @ref LL_RCC_PLL_ConfigDomain_SYS() 进行修改。 */
00106 
00107   uint32_t PLLR;   /*!< 主系统时钟的分频。
00108                         该参数可以是 @ref RCC_LL_EC_PLLR_DIV 的值
00109 
00110                         之后可使用独立函数
00111                         @ref LL_RCC_PLL_ConfigDomain_SYS() 进行修改。 */
00112 } LL_UTILS_PLLInitTypeDef;
00113 
00114 /**
00115   * @brief  UTILS 系统、AHB 和 APB 总线时钟配置结构体定义
00116   */
00117 typedef struct
00118 {
00119   uint32_t AHBCLKDivider;         /*!< AHB 时钟 (HCLK) 分频器。该时钟由系统时钟 (SYSCLK) 派生而来。
00120                                        该参数可以是 @ref RCC_LL_EC_SYSCLK_DIV 的值
00121 
00122                                        之后可使用独立函数
00123                                        @ref LL_RCC_SetAHBPrescaler() 进行修改。 */
00124 
00125   uint32_t APB1CLKDivider;        /*!< APB1 时钟 (PCLK1) 分频器。该时钟由 AHB 时钟 (HCLK) 派生而来。
00126                                        该参数可以是 @ref RCC_LL_EC_APB1_DIV 的值
00127 
00128                                        之后可使用独立函数
00129                                        @ref LL_RCC_SetAPB1Prescaler() 进行修改。 */
00130 
00131   uint32_t APB2CLKDivider;        /*!< APB2 时钟 (PCLK2) 分频器。该时钟由 AHB 时钟 (HCLK) 派生而来。
00132                                        该参数可以是 @ref RCC_LL_EC_APB2_DIV 的值
00133 
00134                                        之后可使用独立函数
00135                                        @ref LL_RCC_SetAPB2Prescaler() 进行修改。 */
00136 
00137 } LL_UTILS_ClkInitTypeDef;
00138 
00139 /**
00140   * @}
00141   */
00142 
00143 /* 导出的常量 --------------------------------------------------------*/
00144 /** @defgroup UTILS_LL_Exported_Constants UTILS 导出的常量
00145   * @{
00146   */
00147 
00148 /** @defgroup UTILS_EC_HSE_BYPASS HSE 旁路激活
00149   * @{
00150   */
00151 #define LL_UTILS_HSEBYPASS_OFF        0x00000000U       /*!< HSE 旁路未启用                */
00152 #define LL_UTILS_HSEBYPASS_ON         0x00000001U       /*!< HSE 旁路已启用                    */
00153 /**
00154   * @}
00155   */
00156 
00157 /** @defgroup UTILS_EC_PACKAGETYPE 封装类型
00158   * @{
00159   */
00160 #define LL_UTILS_PACKAGETYPE_LQFP64             0x00000000U /*!< LQFP64 封装类型                      */
00161 #define LL_UTILS_PACKAGETYPE_WLCSP64            0x00000001U /*!< WLCSP64 封装类型                     */
00162 #if defined (STM32G411xB) || defined (STM32G411xC) || defined (STM32G431xx) || defined (STM32G414xx) || defined (STM32G441xx) || \
00163     defined (STM32G471xx) || defined (STM32G473xx) || defined (STM32G483xx) || defined (STM32G474xx) || defined (STM32G484xx)
00164 #define LL_UTILS_PACKAGETYPE_LQFP100_LQFP80     0x00000002U /*!< LQFP100 \ LQFP80 封装类型             */
00165 #define LL_UTILS_PACKAGETYPE_LQFP100 LL_UTILS_PACKAGETYPE_LQFP100_LQFP80  /*!< 向后兼容  */
00166 #else
00167 #define LL_UTILS_PACKAGETYPE_LQFP100            0x00000002U /*!< LQFP100 封装类型                      */
00168 #endif /* STM32G411xB || STM32G411xC || STM32G431xx || STM32G414xx || STM32G441xx || STM32G471xx || STM32G473xx || STM32G483xx || STM32G474xx || STM32G484xx */
00169 #define LL_UTILS_PACKAGETYPE_WLCSP81            0x00000005U /*!< WLCSP81 封装类型                      */
00170 #define LL_UTILS_PACKAGETYPE_LQFP128_UFBGA121   0x00000007U /*!< LQFP128 \ UFBGA121 封装类型           */
00171 #define LL_UTILS_PACKAGETYPE_LQFP128 LL_UTILS_PACKAGETYPE_LQFP128_UFBGA121 /*!< 向后兼容 */
00172 #define LL_UTILS_PACKAGETYPE_UFQFPN32           0x00000008U /*!< UFQFPN32 封装类型                     */
00173 #define LL_UTILS_PACKAGETYPE_LQFP32             0x00000009U /*!< LQFP32 封装类型                       */
00174 #define LL_UTILS_PACKAGETYPE_UFQFPN48           0x0000000AU /*!< UFQFPN48 封装类型                     */
00175 #define LL_UTILS_PACKAGETYPE_LQFP48             0x0000000BU /*!< LQFP48 封装类型                       */
00176 #define LL_UTILS_PACKAGETYPE_WLCSP49            0x0000000CU /*!< WLCSP49 封装类型                      */
00177 #define LL_UTILS_PACKAGETYPE_UFBGA64            0x0000000DU /*!< UFBGA64 封装类型                      */
00178 #define LL_UTILS_PACKAGETYPE_TFBGA100           0x0000000EU /*!< TFBGA100 封装类型                     */
00179 #define LL_UTILS_PACKAGETYPE_UFBGA100 LL_UTILS_PACKAGETYPE_TFBGA100  /*!< 向后兼容       */
00180 #define LL_UTILS_PACKAGETYPE_LQFP48_EBIKE       0x00000010U /*!< LQFP48 EBIKE 封装类型                 */
00181 #if defined (STM32G491xx) || defined (STM32G4A1xx)
00182 #define LL_UTILS_PACKAGETYPE_LQFP80             0x00000011U /*!< LQFP80 封装类型                       */
00183 #endif <