STM32G474xx HAL用户手册
stm32g4xx_hal_fmac.h
转至此文件的文档
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