mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-22 17:12:55 +08:00
194 lines
6.7 KiB
C
194 lines
6.7 KiB
C
/*!
|
|
* @file apm32f0xx_syscfg.h
|
|
*
|
|
* @brief This file contains all the functions prototypes for the SYSCFG firmware library
|
|
*
|
|
* @version V1.0.1
|
|
*
|
|
* @date 2021-07-01
|
|
*
|
|
*/
|
|
#ifndef __SYSCFG_H
|
|
#define __SYSCFG_H
|
|
|
|
#include "apm32f0xx.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** @addtogroup Peripherals_Library Standard Peripheral Library
|
|
@{
|
|
*/
|
|
|
|
/** @addtogroup SYSCFG_Driver SYSCFG Driver
|
|
@{
|
|
*/
|
|
|
|
/** @addtogroup SYSCFG_Enumerations Enumerations
|
|
@{
|
|
*/
|
|
|
|
/**
|
|
* @brief SYSCFG EINT Port Sources
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_PORT_GPIOA = ((uint8_t)0x00), //!< Port Source GPIOA
|
|
SYSCFG_PORT_GPIOB = ((uint8_t)0x01), //!< Port Source GPIOB
|
|
SYSCFG_PORT_GPIOC = ((uint8_t)0x02), //!< Port Source GPIOC
|
|
SYSCFG_PORT_GPIOD = ((uint8_t)0x03), //!< Port Source GPIOD
|
|
SYSCFG_PORT_GPIOE = ((uint8_t)0x04), //!< Port Source GPIOE (only for APM32F072 and APM32F091 devices)
|
|
SYSCFG_PORT_GPIOF = ((uint8_t)0x05), //!< Port Source GPIOF
|
|
} SYSCFG_PORT_T;
|
|
|
|
/**
|
|
* @brief SYSCFG EINT Pin Sources
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_PIN_0 = ((uint8_t)0x00), //!< Pin Source 0
|
|
SYSCFG_PIN_1 = ((uint8_t)0x01), //!< Pin Source 1
|
|
SYSCFG_PIN_2 = ((uint8_t)0x02), //!< Pin Source 2
|
|
SYSCFG_PIN_3 = ((uint8_t)0x03), //!< Pin Source 3
|
|
SYSCFG_PIN_4 = ((uint8_t)0x04), //!< Pin Source 4
|
|
SYSCFG_PIN_5 = ((uint8_t)0x05), //!< Pin Source 5
|
|
SYSCFG_PIN_6 = ((uint8_t)0x06), //!< Pin Source 6
|
|
SYSCFG_PIN_7 = ((uint8_t)0x07), //!< Pin Source 7
|
|
SYSCFG_PIN_8 = ((uint8_t)0x08), //!< Pin Source 8
|
|
SYSCFG_PIN_9 = ((uint8_t)0x09), //!< Pin Source 9
|
|
SYSCFG_PIN_10 = ((uint8_t)0x0A), //!< Pin Source 10
|
|
SYSCFG_PIN_11 = ((uint8_t)0x0B), //!< Pin Source 11
|
|
SYSCFG_PIN_12 = ((uint8_t)0x0C), //!< Pin Source 12
|
|
SYSCFG_PIN_13 = ((uint8_t)0x0D), //!< Pin Source 13
|
|
SYSCFG_PIN_14 = ((uint8_t)0x0E), //!< Pin Source 14
|
|
SYSCFG_PIN_15 = ((uint8_t)0x0F), //!< Pin Source 15
|
|
} SYSCFG_PIN_T;
|
|
|
|
/**
|
|
* @brief SYSCFG Memory Remap Config
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_MEMORY_REMAP_FMC = ((uint8_t)0x00), //!< SYSCFG MemoryRemap Flash
|
|
SYSCFG_MEMORY_REMAP_SYSTEM = ((uint8_t)0x01), //!< SYSCFG MemoryRemap SystemMemory
|
|
SYSCFG_MEMORY_REMAP_SRAM = ((uint8_t)0x03), //!< SYSCFG MemoryRemap SRAM
|
|
} SYSCFG_MEMORY_REMAP_T;
|
|
|
|
/**
|
|
* @brief SYSCFG DMA Remap Config
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_DAM_REMAP_ADC = ((uint32_t)0x00000100), //!< ADC DMA remap
|
|
SYSCFG_DAM_REMAP_USART1TX = ((uint32_t)0x00000200), //!< USART1 TX DMA remap
|
|
SYSCFG_DAM_REMAP_USART1RX = ((uint32_t)0x00000400), //!< USART1 RX DMA remap
|
|
SYSCFG_DAM_REMAP_TMR16 = ((uint32_t)0x00000800), //!< Timer 16 DMA remap
|
|
SYSCFG_DAM_REMAP_TMR17 = ((uint32_t)0x00001000), //!< Timer 17 DMA remap
|
|
SYSCFG_DAM_REMAP_TMR16_2 = ((uint32_t)0x00002000), //!< Timer 16 DMA remap2(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_TMR17_2 = ((uint32_t)0x00004000), //!< Timer 17 DMA remap2(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_SPI2 = ((uint32_t)0x01000000), //!< SPI2 DMA remap(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_USART2 = ((uint32_t)0x02000000), //!< USART2 DMA remap(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_USART3 = ((uint32_t)0x04000000), //!< USART3 DMA remap(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_I2C1 = ((uint32_t)0x08000000), //!< I2C1 DMA remap(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_TMR1 = ((uint32_t)0x10000000), //!< TMR1 DMA remap(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_TMR2 = ((uint32_t)0x20000000), //!< TMR2 DMA remap(only for APM32F072)
|
|
SYSCFG_DAM_REMAP_TMR3 = ((uint32_t)0x40000000), //!< TMR3 DMA remap(only for APM32F072)
|
|
} SYSCFG_DAM_REMAP_T;
|
|
|
|
/**
|
|
* @brief SYSCFG I2C FastModePlus Config
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_I2C_FMP_PB6 = ((uint32_t)0x00010000), //!< I2C PB6 Fast mode plus
|
|
SYSCFG_I2C_FMP_PB7 = ((uint32_t)0x00020000), //!< I2C PB7 Fast mode plus
|
|
SYSCFG_I2C_FMP_PB8 = ((uint32_t)0x00040000), //!< I2C PB8 Fast mode plus
|
|
SYSCFG_I2C_FMP_PB9 = ((uint32_t)0x00080000), //!< I2C PB9 Fast mode plus
|
|
SYSCFG_I2C_FMP_I2C1 = ((uint32_t)0x00100000), //!< Enable Fast Mode Plus on PB10, PB11, PF6 and PF7(only for APM32F030)
|
|
SYSCFG_I2C_FMP_I2C2 = ((uint32_t)0x00200000), //!< Enable Fast Mode Plus on I2C2 pins(only for APM32F072 and APM32F091)
|
|
SYSCFG_I2C_FMP_PA9 = ((uint32_t)0x00400000), //!< I2C PA9 Fast mode plus(only for APM32F030 and APM32F091)
|
|
SYSCFG_I2C_FMP_PA10 = ((uint32_t)0x00800000), //!< I2C PA10 Fast mode plus(only for APM32F030 and APM32F091)
|
|
} SYSCFG_I2C_FMP_T;
|
|
|
|
/**
|
|
* @brief SYSCFG Lock Config
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_LOCK_LOCKUP = ((uint32_t)0x00000001), //!< Cortex-M0 LOCKUP bit enable
|
|
SYSCFG_LOCK_SRAM = ((uint32_t)0x00000002), //!< SRAM parity lock bit
|
|
SYSCFG_LOCK_PVD = ((uint32_t)0x00000004), //!< PVD lock enable bit, not available for APM32F030 devices
|
|
} SYSCFG_LOCK_T;
|
|
|
|
/**
|
|
* @brief IRDA ENV SOURCE
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_IRDA_ENV_TMR16 = ((uint32_t)0x000000C0), //!< Timer16 as IRDA Modulation envelope source
|
|
SYSCFG_IRDA_ENV_USART1 = ((uint32_t)0x00000040), //!< USART1 as IRDA Modulation envelope source
|
|
SYSCFG_IRDA_ENV_USART4 = ((uint32_t)0x00000080), //!< USART4 as IRDA Modulation envelope source
|
|
} SYSCFG_IRDA_ENV_T;
|
|
|
|
/**
|
|
* @brief SYSCFG flag
|
|
*/
|
|
typedef enum
|
|
{
|
|
SYSCFG_CFG2_SRAMPEF = ((uint32_t)0x00000100), //!< SRAM Parity error flag
|
|
} SYSCFG_FLAG_T;
|
|
|
|
/**@} end of group SYSCFG_Enumerations*/
|
|
|
|
|
|
/** @addtogroup SYSCFG_Macros Macros
|
|
@{
|
|
*/
|
|
|
|
/** Macros description */
|
|
#define SYSCFG_CFG1_MEMMODE ((uint32_t)0x00000003); //!< SYSCFG_Memory Remap Config
|
|
|
|
/**@} end of group SYSCFG_Macros*/
|
|
|
|
|
|
/** @addtogroup SYSCFG_Fuctions Fuctions
|
|
@{
|
|
*/
|
|
/** Reset */
|
|
void SYSCFG_Reset(void);
|
|
|
|
/** Memory Remap selects */
|
|
void SYSCFG_MemoryRemapSelect(uint8_t memory);
|
|
|
|
/** DMA Channel Remap */
|
|
void SYSCFG_EnableDMAChannelRemap(uint32_t channel);
|
|
void SYSCFG_DisableDMAChannelRemap(uint32_t channel);
|
|
|
|
/** I2C Fast Mode Plus */
|
|
void SYSCFG_EnableI2CFastModePlus(uint32_t pin);
|
|
void SYSCFG_DisableI2CFastModePlus(uint32_t pin);
|
|
|
|
/** IRDA Envelope */
|
|
void SYSCFG_SelectIRDAEnv(SYSCFG_IRDA_ENV_T IRDAEnv);
|
|
|
|
/** Eint Line */
|
|
void SYSCFG_EINTLine(SYSCFG_PORT_T port, SYSCFG_PIN_T pin);
|
|
|
|
/** Break lock */
|
|
void SYSCFG_BreakLock(uint32_t lock);
|
|
|
|
/** Flag */
|
|
uint8_t SYSCFG_ReadStatusFlag(uint32_t flag);
|
|
void SYSCFG_ClearStatusFlag(uint8_t flag);
|
|
|
|
/**@} end of group SYSCFG_Fuctions*/
|
|
/**@} end of group SYSCFG_Driver*/
|
|
/**@} end of group Peripherals_Library*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __SYSCFG_H */
|