【STM32】系统配置控制器相关函数和类型
生活随笔
收集整理的這篇文章主要介紹了
【STM32】系统配置控制器相关函数和类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 相關類型
- 03. 相關函數
- 04. 結構體封裝
- 05. 附錄
- 06. 聲明
01. 概述
系統配置控制器主要用于管理對可執行代碼的存儲區域的地址重映射、選擇以太網 PHY 接口以及管理 GPIO 的外部中斷線連接。
02. 相關類型
SYSCFG_EXTI_Port_Sources
/** @defgroup SYSCFG_EXTI_Port_Sources * @{*/ #define EXTI_PortSourceGPIOA ((uint8_t)0x00) #define EXTI_PortSourceGPIOB ((uint8_t)0x01) #define EXTI_PortSourceGPIOC ((uint8_t)0x02) #define EXTI_PortSourceGPIOD ((uint8_t)0x03) #define EXTI_PortSourceGPIOE ((uint8_t)0x04) #define EXTI_PortSourceGPIOF ((uint8_t)0x05) #define EXTI_PortSourceGPIOG ((uint8_t)0x06) #define EXTI_PortSourceGPIOH ((uint8_t)0x07) #define EXTI_PortSourceGPIOI ((uint8_t)0x08) #define EXTI_PortSourceGPIOJ ((uint8_t)0x09) #define EXTI_PortSourceGPIOK ((uint8_t)0x0A)#define IS_EXTI_PORT_SOURCE(PORTSOURCE) (((PORTSOURCE) == EXTI_PortSourceGPIOA) || \((PORTSOURCE) == EXTI_PortSourceGPIOB) || \((PORTSOURCE) == EXTI_PortSourceGPIOC) || \((PORTSOURCE) == EXTI_PortSourceGPIOD) || \((PORTSOURCE) == EXTI_PortSourceGPIOE) || \((PORTSOURCE) == EXTI_PortSourceGPIOF) || \((PORTSOURCE) == EXTI_PortSourceGPIOG) || \((PORTSOURCE) == EXTI_PortSourceGPIOH) || \((PORTSOURCE) == EXTI_PortSourceGPIOI) || \((PORTSOURCE) == EXTI_PortSourceGPIOJ) || \((PORTSOURCE) == EXTI_PortSourceGPIOK))SYSCFG_EXTI_Pin_Sources
/** @defgroup SYSCFG_EXTI_Pin_Sources * @{*/ #define EXTI_PinSource0 ((uint8_t)0x00) #define EXTI_PinSource1 ((uint8_t)0x01) #define EXTI_PinSource2 ((uint8_t)0x02) #define EXTI_PinSource3 ((uint8_t)0x03) #define EXTI_PinSource4 ((uint8_t)0x04) #define EXTI_PinSource5 ((uint8_t)0x05) #define EXTI_PinSource6 ((uint8_t)0x06) #define EXTI_PinSource7 ((uint8_t)0x07) #define EXTI_PinSource8 ((uint8_t)0x08) #define EXTI_PinSource9 ((uint8_t)0x09) #define EXTI_PinSource10 ((uint8_t)0x0A) #define EXTI_PinSource11 ((uint8_t)0x0B) #define EXTI_PinSource12 ((uint8_t)0x0C) #define EXTI_PinSource13 ((uint8_t)0x0D) #define EXTI_PinSource14 ((uint8_t)0x0E) #define EXTI_PinSource15 ((uint8_t)0x0F) #define IS_EXTI_PIN_SOURCE(PINSOURCE) (((PINSOURCE) == EXTI_PinSource0) || \((PINSOURCE) == EXTI_PinSource1) || \((PINSOURCE) == EXTI_PinSource2) || \((PINSOURCE) == EXTI_PinSource3) || \((PINSOURCE) == EXTI_PinSource4) || \((PINSOURCE) == EXTI_PinSource5) || \((PINSOURCE) == EXTI_PinSource6) || \((PINSOURCE) == EXTI_PinSource7) || \((PINSOURCE) == EXTI_PinSource8) || \((PINSOURCE) == EXTI_PinSource9) || \((PINSOURCE) == EXTI_PinSource10) || \((PINSOURCE) == EXTI_PinSource11) || \((PINSOURCE) == EXTI_PinSource12) || \((PINSOURCE) == EXTI_PinSource13) || \((PINSOURCE) == EXTI_PinSource14) || \((PINSOURCE) == EXTI_PinSource15))SYSCFG_Memory_Remap_Config
/** @defgroup SYSCFG_Memory_Remap_Config * @{*/ #define SYSCFG_MemoryRemap_Flash ((uint8_t)0x00) #define SYSCFG_MemoryRemap_SystemFlash ((uint8_t)0x01) #define SYSCFG_MemoryRemap_SRAM ((uint8_t)0x03) #define SYSCFG_MemoryRemap_SDRAM ((uint8_t)0x04)SYSCFG_ETHERNET_Media_Interface
/** @defgroup SYSCFG_ETHERNET_Media_Interface * @{*/ #define SYSCFG_ETH_MediaInterface_MII ((uint32_t)0x00000000) #define SYSCFG_ETH_MediaInterface_RMII ((uint32_t)0x00000001)#define IS_SYSCFG_ETH_MEDIA_INTERFACE(INTERFACE) (((INTERFACE) == SYSCFG_ETH_MediaInterface_MII) || \((INTERFACE) == SYSCFG_ETH_MediaInterface_RMII))03. 相關函數
/* Exported macro ------------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/ void SYSCFG_DeInit(void); void SYSCFG_MemoryRemapConfig(uint8_t SYSCFG_MemoryRemap); void SYSCFG_MemorySwappingBank(FunctionalState NewState); void SYSCFG_EXTILineConfig(uint8_t EXTI_PortSourceGPIOx, uint8_t EXTI_PinSourcex); void SYSCFG_ETH_MediaInterfaceConfig(uint32_t SYSCFG_ETH_MediaInterface); void SYSCFG_CompensationCellCmd(FunctionalState NewState); FlagStatus SYSCFG_GetCompensationCellStatus(void);#if defined(STM32F410xx) || defined(STM32F412xG) || defined(STM32F413_423xx) void SYSCFG_BreakConfig(uint32_t SYSCFG_Break); #endif /* STM32F410xx || STM32F412xG || STM32F413_423xx */#if defined(STM32F413_423xx) void DFSDM_BitstreamClock_SourceSelection(uint32_t source); void DFSDM_DisableDelayClock(uint32_t MCHDLY); void DFSDM_EnableDelayClock(uint32_t MCHDLY); void DFSDM_ClockIn_SourceSelection(uint32_t source); void DFSDM_ClockOut_SourceSelection(uint32_t source); void DFSDM_DataIn0_SourceSelection(uint32_t source); void DFSDM_DataIn2_SourceSelection(uint32_t source); void DFSDM_DataIn4_SourceSelection(uint32_t source); void DFSDM_DataIn6_SourceSelection(uint32_t source); void DFSDM1_BitStreamClk_Config(uint32_t source); void DFSDM2_BitStreamClk_Config(uint32_t source); #endif /* STM32F413_423xx */04. 結構體封裝
系統配置控制器結構體封裝
/** * @brief System configuration controller*/typedef struct {__IO uint32_t MEMRMP; /*!< SYSCFG memory remap register,Address offset: 0x00 */__IO uint32_t PMC; /*!< SYSCFG peripheral mode configuration register,Address offset: 0x04 */__IO uint32_t EXTICR[4]; /*!< SYSCFG external interrupt configuration registers,Address offset: 0x08-0x14 */ #if defined (STM32F410xx) || defined(STM32F412xG) || defined(STM32F413_423xx)uint32_t RESERVED; /*!< Reserved, 0x18 */__IO uint32_t CFGR2; /*!< Reserved, 0x1C */__IO uint32_t CMPCR; /*!< SYSCFG Compensation cell control register,Address offset: 0x20 */uint32_t RESERVED1[2]; /*!< Reserved, 0x24-0x28 */__IO uint32_t CFGR; /*!< SYSCFG Configuration register,Address offset: 0x2C */ #else /* STM32F40_41xxx || STM32F427_437xx || STM32F429_439xx || STM32F401xx || STM32F411xE || STM32F446xx || STM32F469_479xx */uint32_t RESERVED[2]; /*!< Reserved, 0x18-0x1C */ __IO uint32_t CMPCR; /*!< SYSCFG Compensation cell control register,Address offset: 0x20 */ #endif /* STM32F410xx || defined(STM32F412xG) || defined(STM32F413_423xx) */ #if defined(STM32F413_423xx)__IO uint32_t MCHDLYCR; /*!< SYSCFG multi-channel delay register,Address offset: 0x30 */ #endif /* STM32F413_423xx */ } SYSCFG_TypeDef;05. 附錄
5.1 【STM32】STM32系列教程匯總
網址:【STM32】STM32系列教程匯總
06. 聲明
該代碼來自官方固件庫
總結
以上是生活随笔為你收集整理的【STM32】系统配置控制器相关函数和类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【STM32】系统控制寄存器
- 下一篇: 【STM32】中断相关函数和类型