STM32G474xx HAL 用户手册
stm32g4xx_hal_hrtim.h
转到此文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_hal_hrtim.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of HRTIM HAL module.
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_HAL_HRTIM_H
00021 #define STM32G4xx_HAL_HRTIM_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32g4xx_hal_def.h"
00029 
00030 #if defined(HRTIM1)
00031 /** @addtogroup STM32G4xx_HAL_Driver
00032   * @{
00033   */
00034 
00035 /** @addtogroup HRTIM HRTIM
00036   * @{
00037   */
00038 
00039 /* Exported types ------------------------------------------------------------*/
00040 /** @addtogroup HRTIM_Exported_Constants HRTIM 导出的常量
00041   * @{
00042   */
00043 /** @defgroup HRTIM_Max_Timer HRTIM 最大定时器
00044   * @{
00045   */
00046 #define MAX_HRTIM_TIMER 7U
00047 /**
00048   * @}
00049   */
00050 /**
00051   * @}
00052   */
00053 
00054 /** @defgroup HRTIM_Exported_Types HRTIM 导出的类型
00055   * @{
00056   */
00057 
00058 /**
00059   * @brief  HRTIM 配置结构体定义 - 时基相关参数
00060   */
00061 typedef struct
00062 {
00063   uint32_t HRTIMInterruptRequests;  /*!< 指定必须为 HRTIM 实例启用的中断请求。
00064                                           此参数可以是 @ref HRTIM_Common_Interrupt_Enable 的任意组合 */
00065   uint32_t SyncOptions;              /*!< 指定 HRTIM 实例如何处理外部同步信号。
00066                                           HRTIM 实例可以配置为从设备(等待触发以同步)或主设备(生成同步信号)或两者。
00067                                           此参数可以是 @ref HRTIM_Synchronization_Options 的组合。*/
00068   uint32_t SyncInputSource;          /*!< 指定外部同步输入源(仅在 HRTIM 实例配置为从设备时有效)。
00069                                           此参数可以是 @ref HRTIM_Synchronization_Input_Source 中的一个值。 */
00070   uint32_t SyncOutputSource;         /*!< 指定要在外部同步输出上发送的源和事件
00071                                           (仅在 HRTIM 实例配置为主设备时有效)。
00072                                           此参数可以是 @ref HRTIM_Synchronization_Output_Source 中的一个值 */
00073   uint32_t SyncOutputPolarity;       /*!< 指定要在外部同步输出上发送的信号的调理
00074                                           (仅在 HRTIM 实例配置为主设备时有效)。
00075                                           此参数可以是 @ref HRTIM_Synchronization_Output_Polarity 中的一个值 */
00076 } HRTIM_InitTypeDef;
00077 
00078 /**
00079   * @brief  HAL 状态结构体定义
00080   */
00081 typedef enum
00082 {
00083   HAL_HRTIM_STATE_RESET            = 0x00U,    /*!< 外设尚未初始化                  */
00084   HAL_HRTIM_STATE_READY            = 0x01U,    /*!< 外设已初始化并准备好使用           */
00085   HAL_HRTIM_STATE_BUSY             = 0x02U,    /*!< 内部处理正在进行中                     */
00086   HAL_HRTIM_STATE_TIMEOUT          = 0x06U,    /*!< 超时状态                                      */
00087   HAL_HRTIM_STATE_ERROR            = 0x07U,    /*!< 错误状态                                        */
00088 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
00089   HAL_HRTIM_STATE_INVALID_CALLBACK = 0x08U    /*!< 无效的回调错误 */
00090 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
00091 } HAL_HRTIM_StateTypeDef;
00092 
00093 /**
00094   * @brief HRTIM 定时器结构体定义
00095   */
00096 typedef struct
00097 {
00098   uint32_t CaptureTrigger1;       /*!< 触发捕获单元 1 的事件。
00099                                        当定时器在简单模式下运行时,此参数可以是 @ref HRTIM_External_Event_Channels 中的一个值。
00100                                        当定时器在波形模式下运行时,此参数可以是 @ref HRTIM_Capture_Unit_Trigger 的组合。 */
00101   uint32_t CaptureTrigger2;       /*!< 触发捕获单元 2 的事件。
00102                                        当定时器在简单模式下运行时,此参数可以是 @ref HRTIM_External_Event_Channels 中的一个值。
00103                                        当定时器在波形模式下运行时,此参数可以是 @ref HRTIM_Capture_Unit_Trigger 的组合。 */
00104   uint32_t InterruptRequests;     /*!< 为定时器启用的中断请求。 */
00105   uint32_t DMARequests;           /*!< 为定时器启用的 DMA 请求。 */
00106   uint32_t DMASrcAddress;          /*!< DMA 传输的源地址。 */
00107   uint32_t DMADstAddress;          /*!< DMA 传输的目的地址。 */
00108   uint32_t DMASize;                /*!< DMA 传输的大小 */
00109 } HRTIM_TimerParamTypeDef;
00110 
00111 /**
00112   * @brief  HRTIM 句柄结构体定义
00113   */
00114 #if (USE_HAL_HRTIM_REGISTER_CALLBACKS == 1)
00115 typedef struct __HRTIM_HandleTypeDef
00116 #else
00117 typedef struct
00118 #endif /* USE_HAL_HRTIM_REGISTER_CALLBACKS */
00119 {
00120   HRTIM_TypeDef               *Instance;                     /*!< 寄存器基地址 */
00121 
00122   HRTIM_InitTypeDef            Init;                         /*!< HRTIM 所需参数 */
00123 
00124   HRTIM_TimerParamTypeDef      TimerParam[MAX_HRTIM_TIMER];  /*!< HRTIM 定时器 - 包括主定时器 - 参数 */
00125 
00126   HAL_LockTypeDef              Lock;                         /*!< 锁定对象          */
00127 
00128   __IO HAL_HRTIM_StateTypeDef  State;                        /*!< HRTIM 通信状态 */
00129 
00130   DMA_HandleTypeDef           *hdmaMaster;                   /*!< 主定时器 DMA 句柄参数 */
00131   DMA_HandleTypeDef           *hdmaTimerA;                   /*!< 定时器 A DMA 句柄参数 */
00132   DMA_HandleTypeDef