|
STM32G474xx HAL 用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_ll_lptim.h 00004 * @author MCD Application Team 00005 * @brief LPTIM LL模块的头文件。 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * Copyright (c) 2019 STMicroelectronics. 00010 * All rights reserved. 00011 * 00012 * This software is licensed under terms that can be found in the LICENSE file 00013 * in the root directory of this software component. 00014 * If no LICENSE file comes with this software, it is provided AS-IS. 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* Define to prevent recursive inclusion -------------------------------------*/ 00020 #ifndef STM32G4xx_LL_LPTIM_H 00021 #define STM32G4xx_LL_LPTIM_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32g4xx.h" 00029 00030 /** @addtogroup STM32G4xx_LL_Driver 00031 * @{ 00032 */ 00033 00034 00035 00036 /** @defgroup LPTIM_LL LPTIM 00037 * @{ 00038 */ 00039 00040 /* Private types -------------------------------------------------------------*/ 00041 /* Private variables ---------------------------------------------------------*/ 00042 00043 /* Private constants ---------------------------------------------------------*/ 00044 00045 /* Private macros ------------------------------------------------------------*/ 00046 #if defined(USE_FULL_LL_DRIVER) 00047 /** @defgroup LPTIM_LL_Private_Macros LPTIM私有宏 00048 * @{ 00049 */ 00050 /** 00051 * @} 00052 */ 00053 #endif /*USE_FULL_LL_DRIVER*/ 00054 00055 /* Exported types ------------------------------------------------------------*/ 00056 #if defined(USE_FULL_LL_DRIVER) 00057 /** @defgroup LPTIM_LL_ES_INIT LPTIM导出的初始化结构 00058 * @{ 00059 */ 00060 00061 /** 00062 * @brief LPTIM初始化结构定义 00063 */ 00064 typedef struct 00065 { 00066 uint32_t ClockSource; /*!< 指定LPTIM实例使用的时钟源。 00067 此参数可以是@ref LPTIM_LL_EC_CLK_SOURCE的值之一。 00068 00069 此功能稍后可通过单元函数@ref LL_LPTIM_SetClockSource()进行修改。*/ 00070 00072 uint32_t Prescaler; /*!< 指定预分频器分频比。 00073 此参数可以是@ref LPTIM_LL_EC_PRESCALER的值之一。 00075 00076 此功能稍后可通过单元函数@ref LL_LPTIM_SetPrescaler()进行修改。*/ 00077 00078 uint32_t Waveform; /*!< 指定波形形状。 00079 此参数可以是@ref LPTIM_LL_EC_OUTPUT_WAVEFORM的值之一。 00081 00082 此功能稍后可通过单元函数@ref LL_LPTIM_ConfigOutput()进行修改。*/ 00084 00084 uint32_t Polarity; /*!< 指定波形极性。 00085 此参数可以是@ref LPTIM_LL_EC_OUTPUT_POLARITY的值之一。 00087 00088 此功能稍后可通过单元函数@ref LL_LPTIM_ConfigOutput()进行修改。*/ 00089 } LL_LPTIM_InitTypeDef; 00090 00091 /** 00092 * @} 00093 */ 00094 #endif /* USE_FULL_LL_DRIVER */ 00095 00095 00096 /* Exported constants --------------------------------------------------------*/ 00097 /** @defgroup LPTIM_LL_Exported_Constants LPTIM导出的常量 00098 * @{ 00099 */ 00100 00101 /** @defgroup LPTIM_LL_EC_GET_FLAG 获取标志定义 00102 * @brief 可与LL_LPTIM_ReadReg函数一起使用的标志定义 00103 * @{ 00104 */ 00105 #define LL_LPTIM_ISR_CMPM LPTIM_ISR_CMPM /*!< 比较匹配 */ 00106 #define LL_LPTIM_ISR_CMPOK LPTIM_ISR_CMPOK /*!< 比较寄存器更新OK */ 00107 #define LL_LPTIM_ISR_ARRM LPTIM_ISR_ARRM /*!< 自动重载匹配 */ 00108 #define LL_LPTIM_ISR_EXTTRIG LPTIM_ISR_EXTTRIG /*!< 外部触发边沿事件 */ 00109 #define LL_LPTIM_ISR_ARROK LPTIM_ISR_ARROK /*!< 自动重载寄存器更新OK */ 00110 #define LL_LPTIM_ISR_UP LPTIM_ISR_UP /*!< 计数器方向从下往上变化 */ 00111 #define LL_LPTIM_ISR_DOWN LPTIM_ISR_DOWN /*!< 计数器方向从上往下变化 */ 00112 /** 00113 * @} 00114 */ 00115 00116 /** @defgroup LPTIM_LL_EC_IT 中断定义 00117 * @brief 可与LL_LPTIM_ReadReg和LL_LPTIM_WriteReg函数一起使用的中断定义 00118 * @{ 00119 */ 00120 #define LL_LPTIM_IER_CMPMIE LPTIM_IER_CMPMIE /*!< 比较匹配 */ 00121 #define LL_LPTIM_IER_CMPOKIE LPTIM_IER_CMPOKIE /*!< 比较寄存器更新OK */ 00122 #define LL_LPTIM_IER_ARRMIE LPTIM_IER_ARRMIE /*!< 自动重载匹配 */ 00123 #define LL_LPTIM_IER_EXTTRIGIE LPTIM_IER_EXTTRIGIE /*!< 外部触发边沿事件 */ 00124 #define LL_LPTIM_IER_ARROKIE LPTIM_IER_ARROKIE /*!< 自动重载寄存器更新OK */ 00125 #define LL_LPTIM_IER_UPIE LPTIM_IER_UPIE /*!< 计数器方向从下往上变化 */ 00126 #define LL_LPTIM_IER_DOWNIE LPTIM_IER_DOWNIE /*!< 计数器方向从上往下变化 */ 00127 /** 00128 * @} 00129 */ 00130 00131 /** @defgroup LPTIM_LL_EC_OPERATING_MODE 工作模式 00132 * @{ 00133 */ 00134 #define LL_LPTIM_OPERATING_MODE_CONTINUOUS LPTIM_CR_CNTSTRT /*!<LP定时器以连续模式启动*/ 00135 #define LL_LPTIM_OPERATING_MODE_ONESHOT LPTIM_CR_SNGSTRT /*!<LP定时器以单次模式启动*/ 00136 /** 00137 * @} 00138 */ 00139 00140 /** @defgroup LPTIM_LL_EC_UPDATE_MODE 更新模式 00141 * @{ 00142 */ 00143 #define LL_LPTIM_UPDATE_MODE_IMMEDIATE 0x00000000U /*!<禁用预装载:每次APB总线写访问后寄存器更新*/ 00144 #define LL_LPTIM_UPDATE_MODE_ENDOFPERIOD LPTIM_CFGR_PRELOAD /*!<启用预装载:在当前LPTIM周期结束时寄存器更新*/ 00145 /** 00146 * @} 00147 */ 00148 00149 /** @defgroup LPTIM_LL_EC_COUNTER_MODE 计数器模式 00150 * @{ 00151 */ 00152 #define LL_LPTIM_COUNTER_MODE_INTERNAL 0x00000000U /*!<计数器在每个内部时钟脉冲后递增*/ 00153 #define LL_LPTIM_COUNTER_MODE_EXTERNAL LPTIM_CFGR_COUNTMODE /*!<计数器在LPTIM外部输入1的每个有效时钟脉冲后递增*/ 00154 /** 00155 * @} 00156 */ 00157 00158 /** @defgroup LPTIM_LL_EC_OUTPUT_WAVEFORM 输出波形类型 00159 * @{ 00160 */ 00161 #define LL_LPTIM_OUTPUT_WAVEFORM_PWM 0x00000000U /*!<LPTIM根据所选工作模式(连续或单次)生成PWM波形或单脉冲波形*/ 00162 #define LL_LPTIM_OUTPUT_WAVEFORM_SETONCE LPTIM_CFGR_WAVE /*!<LPTIM生成一次置位波形*/ 00163 /** 00164 * @} 00165 */ 00166 00167 /** @defgroup LPTIM_LL_EC_OUTPUT_POLARITY 输出极性 00168 * @{ 00169 */ 00170 #define LL_LPTIM_OUTPUT_POLARITY_REGULAR 0x00000000U /*!<LPTIM输出反映LPTIMx_ARR和LPTIMx_CMP寄存器之间的比较结果*/ 00171 #define LL_LPTIM_OUTPUT_POLARITY_INVERSE LPTIM_CFGR_WAVPOL /*!<LPTIM输出反映LPTIMx_ARR和LPTIMx_CMP寄存器之间比较结果的取反*/ 00172 /** 00173 * @} 00174 */ 00175 00176 /** @defgroup LPTIM_LL_EC_PRESCALER 预分频器值 00177 * @{ 00178 */