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