|
STM32G474xx HAL用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_ll_system.h 00004 * @author MCD Application Team 00005 * @brief Header file of SYSTEM LL 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 @verbatim 00018 ============================================================================== 00019 ##### 如何使用此驱动 ##### 00020 ============================================================================== 00021 [..] 00022 LL SYSTEM驱动包含一组可供用户使用的通用API: 00023 (+) 部分FLASH功能需要在SYSTEM文件中处理。 00024 (+) 访问DBGCMU寄存器 00025 (+) 访问SYSCFG寄存器 00026 (+) 访问VREFBUF寄存器 00027 00028 @endverbatim 00029 ****************************************************************************** 00030 */ 00031 00032 /* Define to prevent recursive inclusion -------------------------------------*/ 00033 #ifndef __STM32G4xx_LL_SYSTEM_H 00034 #define __STM32G4xx_LL_SYSTEM_H 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 /* Includes ------------------------------------------------------------------*/ 00041 #include "stm32g4xx.h" 00042 00043 /** @addtogroup STM32G4xx_LL_Driver 00044 * @{ 00045 */ 00046 00047 #if defined (FLASH) || defined (SYSCFG) || defined (DBGMCU) || defined (VREFBUF) 00048 00049 /** @defgroup SYSTEM_LL SYSTEM 00050 * @{ 00051 */ 00052 00053 /* Private types -------------------------------------------------------------*/ 00054 /* Private variables ---------------------------------------------------------*/ 00055 00056 /* Private constants ---------------------------------------------------------*/ 00057 /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants 00058 * @{ 00059 */ 00060 00061 /* Defines used for position in the register */ 00063 #define DBGMCU_REVID_POSITION (uint32_t)POSITION_VAL(DBGMCU_IDCODE_REV_ID) 00063 00064 /** 00065 * @brief 运行模式下Flash掉电密钥 00066 */ 00067 00068 #define FLASH_PDKEY1 0x04152637U /*!< Flash掉电密钥1 */ 00069 #define FLASH_PDKEY2 0xFAFBFCFDU /*!< Flash掉电密钥2:与FLASH_PDKEY1配合使用以解锁FLASH_ACR中的RUN_PD位 00070 */ 00071 00072 /** 00073 * @} 00074 */ 00075 00076 /* Private macros ------------------------------------------------------------*/ 00077 00078 /* Exported types ------------------------------------------------------------*/ 00079 /* Exported constants --------------------------------------------------------*/ 00080 /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants 00081 * @{ 00082 */ 00083 00084 /** @defgroup SYSTEM_LL_EC_REMAP SYSCFG REMAP 00085 * @{ 00086 */ 00087 #define LL_SYSCFG_REMAP_FLASH 0x00000000U /*!< 主Flash存储器映射到0x00000000 */ 00088 #define LL_SYSCFG_REMAP_SYSTEMFLASH SYSCFG_MEMRMP_MEM_MODE_0 /*!< 系统Flash存储器映射到0x00000000 */ 00089 #define LL_SYSCFG_REMAP_SRAM (SYSCFG_MEMRMP_MEM_MODE_1 | SYSCFG_MEMRMP_MEM_MODE_0) /*!< SRAM1映射到0x00000000 */ 00090 #if defined(FMC_Bank1_R) 00091 #define LL_SYSCFG_REMAP_FMC SYSCFG_MEMRMP_MEM_MODE_1 /*!< FMC bank 1 (NOR/PSRAM 1 and 2) mapped at 0x00000000 */ 00092 #endif /* FMC_Bank1_R */ 00093 #define LL_SYSCFG_REMAP_QUADSPI (SYSCFG_MEMRMP_MEM_MODE_2 | SYSCFG_MEMRMP_MEM_MODE_1) /*!< QUADSPI存储器映射到0x00000000 */ 00094 /** 00095 * @} 00096 */ 00097 00098 #if defined(SYSCFG_MEMRMP_FB_MODE) 00099 /** @defgroup SYSTEM_LL_EC_BANKMODE SYSCFG BANK MODE 00100 * @{ 00101 */ 00102 #define LL_SYSCFG_BANKMODE_BANK1 0x00000000U /*!< Flash Bank1映射到0x08000000(并别名到@0x00000000) 00103 和Flash Bank2映射到0x08040000(并别名到0x00080000) */ 00104 #define LL_SYSCFG_BANKMODE_BANK2 SYSCFG_MEMRMP_FB_MODE /*!< Flash Bank2映射到0x08000000(并别名到@0x00000000) 00105 和Flash Bank1映射到0x08040000(并别名到0x00080000) */ 00106 /** 00107 * @} 00108 */ 00109 00110 #endif /* SYSCFG_MEMRMP_FB_MODE */ 00111 /** @defgroup SYSTEM_LL_EC_I2C_FASTMODEPLUS SYSCFG I2C FASTMODEPLUS 00112 * @{ 00113 */ 00114 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP /*!< Enable Fast Mode Plus on PB6 */ 00115 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP /*!< Enable Fast Mode Plus on PB7 */ 00116 #if defined(SYSCFG_CFGR1_I2C_PB8_FMP) 00117 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP /*!< Enable Fast Mode Plus on PB8 */ 00118 #endif /* SYSCFG_CFGR1_I2C_PB8_FMP */ 00119 #if defined(SYSCFG_CFGR1_I2C_PB9_FMP) 00120 #define LL_SYSCFG_I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP /*!< Enable Fast Mode Plus on PB9 */ 00121 #endif /* SYSCFG_CFGR1_I2C_PB9_FMP */ 00122 #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C1_FMP /*!< Enable Fast Mode Plus on I2C1 pins */ 00123 #if defined(I2C2) 00124 #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C2 SYSCFG_CFGR1_I2C2_FMP /*!< Enable Fast Mode Plus on I2C2 pins */ 00125 #endif /* I2C2 */ 00126 #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C3 SYSCFG_CFGR1_I2C3_FMP /*!< Enable Fast Mode Plus on I2C3 pins */ 00127 #if defined(I2C4) 00128 #define LL_SYSCFG_I2C_FASTMODEPLUS_I2C4 SYSCFG_CFGR1_I2C4_FMP /*!< Enable Fast Mode Plus on I2C4 pins */ 00129 #endif /* I2C4 */ 00130 /** 00131 * @} 00132 */ 00133 00134 /** @defgroup SYSTEM_LL_EC_EXTI_PORT SYSCFG EXTI PORT 00135 * @{ 00136 */ 00137 #define LL_SYSCFG_EXTI_PORTA 0U /*!< EXTI PORT A */ 00138 #define LL_SYSCFG_EXTI_PORTB 1U /*!< EXTI PORT B */ 00139 #define LL_SYSCFG_EXTI_PORTC 2U /*!< EXTI PORT C */ 00140 #define LL_SYSCFG_EXTI_PORTD 3U /*!< EXTI PORT D */ 00141 #define LL_SYSCFG_EXTI_PORTE 4U /*!< EXTI PORT E */ 00142 #define LL_SYSCFG_EXTI_PORTF 5U /*!< EXTI PORT F */ 00143 #define LL_SYSCFG_EXTI_PORTG 6U /*!< EXTI PORT G */ 00144 /** 00145 * @} 00146 */ 00147 00148 /** @defgroup SYSTEM_LL_EC_EXTI_LINE SYSCFG EXTI LINE 00149 * @{ 00150 */ 00151 #define LL_SYSCFG_EXTI_LINE0 (uint32_t)((0x000FU << 16U) | 0U) /* !< EXTI_POSITION_0 | EXTICR[0] */ 00152 #define LL_SYSCFG_EXTI_LINE1 (uint32_t)((0x00F0U << 16U) | 0U) /* !< EXTI_POSITION_4 | EXTICR[0] */ 00153 #define LL_SYSCFG_EXTI_LINE2 (uint32_t)((0x0F00U << 16U) | 0U) /* !< EXTI_POSITION_8 | EXTICR[0] */ 00154 #define LL_SYSCFG_EXTI_LINE3 (uint32_t)((0xF000U << 16U) | 0U) /* !< EXTI_POSITION_12 | EXTICR[0] */ 00155 #define LL_SYSCFG_EXTI_LINE4 (uint32_t)((0x000FU << 16U) | 1U) /* !< EXTI_POSITION_0 | EXTICR[1] */ 00156 #define LL_SYSCFG_EXTI_LINE5 (uint32_t)((0x00F0U << 16U) | 1U) /* !< EXTI_POSITION_4 | EXTICR[1] */ 00157 #define LL_SYSCFG_EXTI_LINE6 (uint32_t)((0x0F00U << 16U) | 1U) /* !< EXTI_POSITION_8 | EXTICR[1]