```html
|
STM32G474xx HAL 用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_ll_crs.h 00004 * @author MCD 应用团队 00005 * @brief CRS LL 模块的头文件。 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * 版权所有 (c) 2019 STMicroelectronics。 00010 * 保留所有权利。 00011 * 00012 * 本软件根据可在 LICENSE 文件中找到的条款进行许可 00013 * 位于本软件组件的根目录中。 00014 * 如果本软件没有附带 LICENSE 文件,则按“原样”提供。 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* 防止重复包含的定义 -------------------------------------*/ 00020 #ifndef STM32G4xx_LL_CRS_H 00021 #define STM32G4xx_LL_CRS_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* 包含文件 ------------------------------------------------------------------*/ 00028 #include "stm32g4xx.h" 00029 00030 /** @addtogroup STM32G4xx_LL_Driver 00031 * @{ 00032 */ 00033 00034 #if defined(CRS) 00035 00036 /** @defgroup CRS_LL CRS 00037 * @{ 00038 */ 00039 00040 /* 私有类型 -------------------------------------------------------------*/ 00041 /* 私有变量 ---------------------------------------------------------*/ 00042 /* 私有常量 ---------------------------------------------------------*/ 00043 /* 私有宏 ------------------------------------------------------------*/ 00044 /* 导出类型 ------------------------------------------------------------*/ 00045 /* 导出常量 --------------------------------------------------------*/ 00046 /** @defgroup CRS_LL_Exported_Constants CRS 导出常量 00047 * @{ 00048 */ 00049 00050 /** @defgroup CRS_LL_EC_GET_FLAG 获取标志定义 00051 * @brief 可用于 LL_CRS_ReadReg 函数的标志定义 00052 * @{ 00053 */ 00054 #define LL_CRS_ISR_SYNCOKF CRS_ISR_SYNCOKF 00055 #define LL_CRS_ISR_SYNCWARNF CRS_ISR_SYNCWARNF 00056 #define LL_CRS_ISR_ERRF CRS_ISR_ERRF 00057 #define LL_CRS_ISR_ESYNCF CRS_ISR_ESYNCF 00058 #define LL_CRS_ISR_SYNCERR CRS_ISR_SYNCERR 00059 #define LL_CRS_ISR_SYNCMISS CRS_ISR_SYNCMISS 00060 #define LL_CRS_ISR_TRIMOVF CRS_ISR_TRIMOVF 00061 /** 00062 * @} 00063 */ 00064 00065 /** @defgroup CRS_LL_EC_IT 中断定义 00066 * @brief 可用于 LL_CRS_ReadReg 和 LL_CRS_WriteReg 函数的中断定义 00067 * @{ 00068 */ 00069 #define LL_CRS_CR_SYNCOKIE CRS_CR_SYNCOKIE 00070 #define LL_CRS_CR_SYNCWARNIE CRS_CR_SYNCWARNIE 00071 #define LL_CRS_CR_ERRIE CRS_CR_ERRIE 00072 #define LL_CRS_CR_ESYNCIE CRS_CR_ESYNCIE 00073 /** 00074 * @} 00075 */ 00076 00077 /** @defgroup CRS_LL_EC_SYNC_DIV 同步信号分频器 00078 * @{ 00079 */ 00080 #define LL_CRS_SYNC_DIV_1 0x00000000U /*!< 同步信号不分频(默认) */ 00081 #define LL_CRS_SYNC_DIV_2 CRS_CFGR_SYNCDIV_0 /*!< 同步信号除以2 */ 00082 #define LL_CRS_SYNC_DIV_4 CRS_CFGR_SYNCDIV_1 /*!< 同步信号除以4 */ 00083 #define LL_CRS_SYNC_DIV_8 (CRS_CFGR_SYNCDIV_1 | CRS_CFGR_SYNCDIV_0) /*!< 同步信号除以8 */ 00084 #define LL_CRS_SYNC_DIV_16 CRS_CFGR_SYNCDIV_2 /*!< 同步信号除以16 */ 00085 #define LL_CRS_SYNC_DIV_32 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_0) /*!< 同步信号除以32 */ 00086 #define LL_CRS_SYNC_DIV_64 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_1) /*!< 同步信号除以64 */ 00087 #define LL_CRS_SYNC_DIV_128 CRS_CFGR_SYNCDIV /*!< 同步信号除以128 */ 00088 /** 00089 * @} 00090 */ 00091 00092 /** @defgroup CRS_LL_EC_SYNC_SOURCE 同步信号源 00093 * @{ 00094 */ 00095 #define LL_CRS_SYNC_SOURCE_GPIO 0x00000000U /*!< 同步信号源 GPIO */ 00096 #define LL_CRS_SYNC_SOURCE_LSE CRS_CFGR_SYNCSRC_0 /*!< 同步信号源 LSE */ 00097 #define LL_CRS_SYNC_SOURCE_USB CRS_CFGR_SYNCSRC_1 /*!< 同步信号源 USB SOF(默认)*/ 00098 /** 00099 * @} 00100 */ 00101 00102 /** @defgroup CRS_LL_EC_SYNC_POLARITY 同步信号极性 00103 * @{ 00104 */ 00105 #define LL_CRS_SYNC_POLARITY_RISING 0x00000000U /*!< 同步有效在上升沿(默认) */ 00106 #define LL_CRS_SYNC_POLARITY_FALLING CRS_CFGR_SYNCPOL /*!< 同步有效在下降沿 */ 00107 /** 00108 * @} 00109 */ 00110 00111 /** @defgroup CRS_LL_EC_FREQERRORDIR 频率误差方向 00112 * @{ 00113 */ 00114 #define LL_CRS_FREQ_ERROR_DIR_UP 0x00000000U /*!< 向上计数方向,实际频率高于目标值 */ 00115 #define LL_CRS_FREQ_ERROR_DIR_DOWN CRS_ISR_FEDIR /*!< 向下计数方向,实际频率低于目标值 */ 00116 /** 00117 * @} 00118 */ 00119 00120 /** @defgroup CRS_LL_EC_DEFAULTVALUES 默认值 00121 * @{ 00122 */ 00123 /** 00124 * @brief RELOAD 字段的复位值 00125 * @note RELOAD 字段的复位值对应于 48 MHz 的目标频率 00126 * 和 1 kHz 的同步信号频率(来自 USB 的 SOF 信号) 00127 */ 00128 #define LL_CRS_RELOADVALUE_DEFAULT 0x0000BB7FU 00129 00130 /** 00131 * @brief 频率误差限制的复位值。 00132 */ 00133 #define LL_CRS_ERRORLIMIT_DEFAULT 0x00000022U 00134 00135 /** 00136 * @brief HSI48 校准字段的复位值 00137 * @note 默认值为 64, 00138 * 对应于微调区间的中间值。 00139 * 微调步长在产品数据手册中指定。 00140 * 更高的 TRIM 值对应于更高的输出频率。 00141 */ 00142 #define LL_CRS_HSI48CALIBRATION_DEFAULT 0x00000040U 00143 /** 00144 * @} 00145 */ 00146 00147 /** 00148 * @} 00149 */ 00150 00151 /* 导出宏 ------------------------------------------------------------*/ 00152 /** @defgroup CRS_LL_Exported_Macros CRS 导出宏 00153 * @{ 00154 */ 00155 00156 /** @defgroup CRS_LL_EM_WRITE_READ 通用读写寄存器宏 00157 * @{ 00158 */ 00159 00160 /** 00161 * @brief 在 CRS 寄存器中写入一个值 00162 * @param __INSTANCE__ CRS 实例 00163 * @param __REG__ 要写入的寄存器 00164 * @param __VALUE__ 要写入寄存器的值 00165 * @retval 无 00166 */ 00167 #define LL_CRS_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__)) 00168 00169 /** 00170 * @brief 从 CRS 寄存器中读取一个值 00171 * @param __INSTANCE__ CRS 实例 00172 * @param __REG__ 要读取的寄存器 00173 * @retval 寄存器值 00174 */ 00175 #define LL_CRS_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__) 00176 /** 00177 * @} 00178 */ 00179 00180 /** @defgroup CRS_LL_EM_Exported_Macros_Calculate_Reload 导出的宏_计算_重载 00181 * @{ 00182 <