|
STM32G474xx HAL用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_hal_fmac.h 00004 * @author MCD Application Team 00005 * @brief Header for stm32g4xx_hal_fmac.c 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_FMAC_H 00021 #define STM32G4xx_HAL_FMAC_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* Includes ------------------------------------------------------------------*/ 00028 #include "stm32g4xx_hal_def.h" 00029 00030 #if defined(FMAC) 00031 /** @addtogroup STM32G4xx_HAL_Driver 00032 * @{ 00033 */ 00034 00035 /** @addtogroup FMAC 00036 * @{ 00037 */ 00038 00039 /* Exported types ------------------------------------------------------------*/ 00040 /** @defgroup FMAC_Exported_Types FMAC导出的类型 00041 * @{ 00042 */ 00043 00044 /** 00045 * @brief FMAC HAL状态结构体定义 00046 */ 00047 typedef enum 00048 { 00049 HAL_FMAC_STATE_RESET = 0x00U, /*!< FMAC未初始化或禁用 */ 00050 HAL_FMAC_STATE_READY = 0x20U, /*!< FMAC已初始化并可使用 */ 00051 HAL_FMAC_STATE_BUSY = 0x24U, /*!< FMAC内部处理正在进行 */ 00052 HAL_FMAC_STATE_BUSY_RD = 0x25U, /*!< FMAC正在读取配置 */ 00053 HAL_FMAC_STATE_BUSY_WR = 0x26U, /*!< FMAC正在写入配置 */ 00054 HAL_FMAC_STATE_TIMEOUT = 0xA0U, /*!< FMAC处于超时状态 */ 00055 HAL_FMAC_STATE_ERROR = 0xE0U /*!< FMAC处于错误状态 */ 00056 } HAL_FMAC_StateTypeDef; 00057 00058 /** 00059 * @brief FMAC句柄结构体定义 00060 */ 00061 #if (USE_HAL_FMAC_REGISTER_CALLBACKS == 1) 00062 typedef struct __FMAC_HandleTypeDef 00063 #else 00064 typedef struct 00065 #endif /* USE_HAL_FMAC_REGISTER_CALLBACKS */ 00066 { 00067 FMAC_TypeDef *Instance; /*!< 寄存器基地址 */ 00068 00069 uint32_t FilterParam; /*!< 滤波器配置(操作和参数)。 00070 如果未应用有效配置则设为0。 */ 00071 00072 uint8_t InputAccess; /*!< 输入缓冲区访问(内部存储区域): 00073 DMA、IT、轮询、无。 00074 此参数可以是@ref FMAC_Buffer_Access的值。 */ 00075 00076 uint8_t OutputAccess; /*!< 输出缓冲区访问(内部存储区域): 00077 DMA、IT、轮询、无。 00078 此参数可以是@ref FMAC_Buffer_Access的值。 */ 00079 00080 int16_t *pInput; /*!< 指向FMAC输入数据缓冲区的指针 */ 00081 00082 uint16_t InputCurrentSize; /*!< 已写入FMAC的输入元素数量 */ 00083 00084 uint16_t *pInputSize; /*!< 待写入的输入元素数量(分配给pInput的内存)。 00085 如果滤波操作提前中断, 00086 其值将被更新。 */ 00087 00088 int16_t *pOutput; /*!< 指向FMAC输出数据缓冲区的指针 */ 00089 00090 uint16_t OutputCurrentSize; /*!< 已从FMAC读取的输出元素数量 */ 00091 00092 uint16_t *pOutputSize; /*!< 待读取的输出元素数量(分配给pOutput的内存)。 00093 如果滤波操作提前中断, 00094 其值将被更新。 */ 00095 00096 DMA_HandleTypeDef *hdmaIn; /*!< FMAC外设输入数据DMA句柄参数 */ 00097 00098 DMA_HandleTypeDef *hdmaOut; /*!< FMAC外设输出数据DMA句柄参数 */ 00099 00100 DMA_HandleTypeDef *hdmaPreload; /*!< FMAC外设预加载数据(X1、X2和Y)DMA句柄 00101 参数 */ 00102 00103 #if (USE_HAL_FMAC_REGISTER_CALLBACKS == 1) 00104 void (* ErrorCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC错误回调 */ 00105 00106 void (* HalfGetDataCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC获取半数据回调 */ 00107 00108 void (* GetDataCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC获取数据回调 */ 00109 00110 void (* HalfOutputDataReadyCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC半输出数据就绪回调 */ 00111 00112 void (* OutputDataReadyCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC输出数据就绪回调 */ 00113 00114 void (* FilterConfigCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC滤波器配置回调 */ 00115 00116 void (* FilterPreloadCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC滤波器预加载回调 */ 00117 00118 void (* MspInitCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC Msp初始化回调 */ 00119 00120 void (* MspDeInitCallback)(struct __FMAC_HandleTypeDef *hfmac); /*!< FMAC Msp反初始化回调 */ 00121 00122 #endif /* (USE_HAL_FMAC_REGISTER_CALLBACKS) */ 00123 00124 HAL_LockTypeDef Lock; /*!< FMAC锁定对象 */ 00125 00126 __IO HAL_FMAC_StateTypeDef State; /*!< 与全局句柄管理相关的FMAC状态 00127 此参数可以是@ref HAL_FMAC_StateTypeDef的值 */ 00128