```html STM32G474xx HAL 用户手册: stm32g4xx_ll_crs.h 源文件
STM32G474xx HAL 用户手册
stm32g4xx_ll_crs.h
转到此文件的文档。
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 <