|
STM32G474xx HAL 用户手册
|
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 <