|
STM32G474xx HAL用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_ hal_ cordic.h 00004 * @author MCD Application Team 00005 * @brief 本文件包含CORDIC固件库的所有函数原型。 00006 * 库。 00007 ****************************************************************************** 00008 * @attention 00009 * 00010 * Copyright (c) 2019 STMicroelectronics. 00011 * All rights reserved. 00012 * 00013 * This software is licensed under terms that can be found in the LICENSE file 00014 * in the root directory of this software component. 00015 * If no LICENSE file comes with this software, it is provided AS-IS. 00016 * 00017 ****************************************************************************** 00018 */ 00019 00020 /* 定义以防止递归包含 -------------------------------------*/ 00021 #ifndef STM32G4xx_ HAL_ CORDIC_H 00022 #define STM32G4xx_ HAL_ CORDIC_H 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00028 /* 包含 ------------------------------------------------------------------*/ 00029 #include "stm32g4xx_ hal_ def.h" 00030 00031 #if defined(CORDIC) 00032 /** @addtogroup STM32G4xx_ HAL_驱动程序 00033 * @{ 00034 */ 00035 00036 /** @addtogroup CORDIC 00037 * @{ 00038 */ 00039 00040 /* 导出的类型 ------------------------------------------------------------*/ 00041 /** @defgroup CORDIC_导出的类型 CORDIC导出的类型 00042 * @{ 00043 */ 00044 00045 /** 00046 * @brief CORDIC HAL状态结构定义 00047 */ 00048 typedef enum 00049 { 00050 HAL_ CORDIC_STATE_ RESET = 0x00U, /*!< CORDIC尚未初始化或禁用 */ 00051 HAL_ CORDIC_STATE_ READY = 0x01U, /*!< CORDIC已初始化并可使用 */ 00052 HAL_ CORDIC_STATE_ BUSY = 0x02U, /*!< CORDIC内部处理正在进行 */ 00053 HAL_ CORDIC_STATE_ ERROR = 0x03U /*!< CORDIC错误状态 */ 00054 } HAL_ CORDIC_ StateTypeDef; 00055 00056 /** 00057 * @brief CORDIC句柄结构定义 00058 */ 00059 #if USE_ HAL_ CORDIC_ REGISTER_ CALLBACKS == 1 00060 typedef struct __ CORDIC_ HandleTypeDef 00061 #else 00062 typedef struct 00063 #endif /* USE_ HAL_ CORDIC_ REGISTER_ CALLBACKS */ 00064 { 00065 CORDIC_ TypeDef *Instance; /*!< 寄存器基地址 */ 00066 00067 const int32_ t *pInBuff; /*!< 指向CORDIC输入数据缓冲区的指针 */ 00068 00069 int32_ t *pOutBuff; /*!< 指向CORDIC输出数据缓冲区的指针 */ 00070 00071 uint32_ t NbCalcToOrder; /*!< 待排序的计算数量 */ 00072 00073 uint32_ t NbCalcToGet; /*!< 待获取的计算结果数量 */ 00074 00075 uint32_ t DMADirection; /*!< CORDIC DMA传输方向 */ 00076 00077 DMA_ HandleTypeDef *hdmaIn; /*!< CORDIC外设输入数据DMA句柄参数 */ 00078 00079 DMA_ HandleTypeDef *hdmaOut; /*!< CORDIC外设输出数据DMA句柄参数 */ 00080 00081 HAL_ LockTypeDef Lock; /*!< CORDIC锁定对象 */ 00082 00083 __IO HAL_ CORDIC_ StateTypeDef State; /*!< CORDIC状态 */ 00084 00085 __IO uint32_ t ErrorCode; /*!< CORDIC外设错误代码 00086 此参数可以是@ref CORDIC_ Error_ Code的值 */ 00087 00088 #if USE_ HAL_ CORDIC_ REGISTER_ CALLBACKS == 1 00089 void (* ErrorCallback)(struct __ CORDIC_ HandleTypeDef *hcordic); /*!< CORDIC错误回调 */ 00090 void (* CalculateCpltCallback)(struct __ CORDIC_ HandleTypeDef *hcordic); /*!< CORDIC计算完成回调 */ 00091 00092 void (* MspInitCallback)(struct __ CORDIC_ HandleTypeDef *hcordic); /*!< CORDIC Msp Init回调 */ 00093 void (* MspDeInitCallback)(struct __ CORDIC_ HandleTypeDef *hcordic); /*!< CORDIC Msp DeInit回调 */ 00094 00095 #endif /* (USE_ HAL_ CORDIC_ REGISTER_ CALLBACKS) */ 00096 00097 } CORDIC_ HandleTypeDef; 00098 00099 /** 00100 * @brief CORDIC配置结构定义 00101 */ 00102 typedef struct 00103 { 00104 uint32_ t Function; /*!< 函数 00105 此参数可以是@ref CORDIC_ Function的值 */ 00106 00107 uint32_ t Scale; /*!< 缩放因子 00108 此参数可以是@ref CORDIC_ Scale的值 */ 00109 00110 uint32_ t InSize; /*!< 输入数据宽度 00111 此参数可以是@ref CORDIC_ In_ Size的值 */ 00112 00113 uint32_ t OutSize; /*!< 输出数据宽度 00114 此参数可以是@ref CORDIC_ Out_ Size的值 */ 00115 00116 uint32_ t NbWrite; /*!< 一次计算所需的32位写入次数 00117 此参数可以是@ref CORDIC_ Nb_ Write的值 */ 00118 00119 uint32_ t NbRead; /*!< 一次计算后预期的32位读取次数 00120 此参数可以是@ref CORDIC_ Nb_ Read的值 */ 00121 00122 uint32_ t Precision; /*!< 计算周期数 00123 此参数可以是@ref CORDIC_ Precision_ In_ Cycles_ Number的值 */ 00124 00125 } CORDIC_ ConfigTypeDef; 00126 00127 #if USE_ HAL_ CORDIC_ REGISTER_ CALLBACKS == 1 00128 /** 00129 * @brief HAL CORDIC回调ID枚举定义 00130 */ 00131 typedef enum 00132 { 00133 HAL_ CORDIC_ ERROR_ CB_ ID = 0x00U, /*!< CORDIC错误回调ID */ 00134 HAL_ CORDIC_ CALCULATE_ CPLT_ CB_ ID = 0x01U, /*!< CORDIC计算完成回调ID */ 00135 00136 HAL_ CORDIC_ MSPINIT_ CB_ ID = 0x02U, /*!< CORDIC MspInit回调ID */ 00137