📄 stm8l15x.h
字号:
/**
* @}
*/
/*----------------------------------------------------------------------------ok*/
/**
* @brief SYSCFG
*/
typedef struct SYSCFG_struct
{
__IO uint8_t RMPCR3; /*!< Remap control register 3 */
__IO uint8_t RMPCR1; /*!< Remap control register 1 */
__IO uint8_t RMPCR2; /*!< Remap control register 2 */
}
SYSCFG_TypeDef;
/** @addtogroup SYSCFG_Registers_Reset_Value
* @{
*/
#define SYSCFG_RMPCR1_RESET_VALUE ((uint8_t)0x0C)
#define SYSCFG_RMPCR2_RESET_VALUE ((uint8_t)0x00)
#define SYSCFG_RMPCR3_RESET_VALUE ((uint8_t)0x00)
/**
* @}
*/
/** @addtogroup SYSCFG_Registers_Bits_Definition
* @{
*/
/* For DMA Channel Mapping*/
#define SYSCFG_RMPCR1_ADC1DMA_REMAP ((uint8_t)0x03) /*!< ADC1 DMA channel remapping */
#define SYSCFG_RMPCR1_TIM4DMA_REMAP ((uint8_t)0x0C) /*!< TIM4 DMA channel remapping */
/* For GPIO Reapping*/
#define SYSCFG_RMPCR1_USART1TR_REMAP ((uint8_t)0x30) /*!< USART1_TX and USART1_RX remapping */
#define SYSCFG_RMPCR1_USART1CK_REMAP ((uint8_t)0x40) /*!< USART1_CK remapping */
#define SYSCFG_RMPCR1_SPI1_REMAP ((uint8_t)0x80) /*!< SPI1 remapping */
#define SYSCFG_RMPCR2_ADC1TRIG_REMAP ((uint8_t)0x01) /*!< ADC1 External Trigger remap */
#define SYSCFG_RMPCR2_TIM2TRIG_REMAP ((uint8_t)0x02) /*!< TIM2 Trigger remap */
#define SYSCFG_RMPCR2_TIM3TRIG_REMAP1 ((uint8_t)0x04) /*!< TIM3 Trigger remap 1 */
#define SYSCFG_RMPCR2_TIM2TRIG_LSE ((uint8_t)0x08) /*!< TIM2 Trigger remap to LSE */
#define SYSCFG_RMPCR2_TIM3TRIG_LSE ((uint8_t)0x10) /*!< TIM3 Trigger remap to LSE */
#define SYSCFG_RMPCR2_SPI2_REMAP ((uint8_t)0x20) /*!< SPI2 remapping */
#define SYSCFG_RMPCR2_TIM3TRIG_REMAP2 ((uint8_t)0x40) /*!< TIM3 Trigger remap 2 */
#define SYSCFG_RMPCR2_TIM23BKIN_REMAP ((uint8_t)0x80) /*!< TIM2 & TIM3 Break input remap */
#define SYSCFG_RMPCR3_SPI1_REMAP ((uint8_t)0x01) /*!< SPI1 remapping */
#define SYSCFG_RMPCR3_USART3TR_REMAP ((uint8_t)0x02) /*!< USART3_TX and USART3_RX remapping */
#define SYSCFG_RMPCR3_USART3CK_REMAP ((uint8_t)0x04) /*!< USART3_CK remapping */
#define SYSCFG_RMPCR3_TIM3CH1_REMAP ((uint8_t)0x08) /*!< TIM3 channel 1 remapping */
#define SYSCFG_RMPCR3_TIM3CH2_REMAP ((uint8_t)0x10) /*!< TIM3 channel 2 remapping */
#define SYSCFG_RMPCR3_CCO_REMAP ((uint8_t)0x20) /*!< CCO remapping */
/**
* @}
*/
/*----------------------------------------------------------------------------ok*/
/**
* @brief Clock Controller (CLK)
*/
typedef struct CLK_struct
{
__IO uint8_t CKDIVR; /*!< Clock Master Divider Register */
__IO uint8_t CRTCR; /*!< RTC Clock selection Register */
__IO uint8_t ICKCR; /*!< Internal Clocks Control Register */
__IO uint8_t PCKENR1; /*!< Peripheral Clock Gating Register 1 */
__IO uint8_t PCKENR2; /*!< Peripheral Clock Gating Register 2 */
__IO uint8_t CCOR; /*!< Configurable Clock Output Register */
__IO uint8_t ECKCR; /*!< External Clocks Control Register */
__IO uint8_t SCSR; /*!< System clock status Register */
__IO uint8_t SWR; /*!< System clock Switch Register */
__IO uint8_t SWCR; /*!< Switch Control Register */
__IO uint8_t CSSR; /*!< Clock Security Sytem Register */
__IO uint8_t CBEEPR; /*!< Clock BEEP Register */
__IO uint8_t HSICALR; /*!< HSI Calibration Register */
__IO uint8_t HSITRIMR; /*!< HSI clock Calibration Trimmer Register */
__IO uint8_t HSIUNLCKR; /*!< HSI Unlock Register */
__IO uint8_t REGCSR; /*!< Main regulator control status register */
__IO uint8_t PCKENR3; /*!< Peripheral Clock Gating Register 3 */
}
CLK_TypeDef;
/** @addtogroup CLK_Registers_Reset_Value
* @{
*/
#define CLK_CKDIVR_RESET_VALUE ((uint8_t)0x03)
#define CLK_CRTCR_RESET_VALUE ((uint8_t)0x00)
#define CLK_ICKCR_RESET_VALUE ((uint8_t)0x11)
#define CLK_PCKENR1_RESET_VALUE ((uint8_t)0x00)
#define CLK_PCKENR2_RESET_VALUE ((uint8_t)0x80)
#define CLK_PCKENR3_RESET_VALUE ((uint8_t)0x00)
#define CLK_CCOR_RESET_VALUE ((uint8_t)0x00)
#define CLK_ECKCR_RESET_VALUE ((uint8_t)0x00)
#define CLK_SCSR_RESET_VALUE ((uint8_t)0x01)
#define CLK_SWR_RESET_VALUE ((uint8_t)0x01)
#define CLK_SWCR_RESET_VALUE ((uint8_t)0x00)
#define CLK_CSSR_RESET_VALUE ((uint8_t)0x00)
#define CLK_CBEEPR_RESET_VALUE ((uint8_t)0x00)
#define CLK_HSICALR_RESET_VALUE ((uint8_t)0x00)
#define CLK_HSITRIMR_RESET_VALUE ((uint8_t)0x00)
#define CLK_HSIUNLCKR_RESET_VALUE ((uint8_t)0x00)
#define CLK_REGCSR_RESET_VALUE ((uint8_t)0xB9)
/**
* @}
*/
/** @addtogroup CLK_Registers_Bits_Definition
* @{
*/
#define CLK_CKDIVR_CKM ((uint8_t)0x07) /*!< System clock prescaler mask */
#define CLK_CRTCR_RTCDIV ((uint8_t)0xE0) /*!< RTC clock prescaler mask*/
#define CLK_CRTCR_RTCSEL ((uint8_t)0x1E) /*!< RTC clock output selection mask */
#define CLK_CRTCR_RTCSWBSY ((uint8_t)0x01) /*!< RTC clock switch busy */
#define CLK_ICKCR_BEEPAHALT ((uint8_t)0x40) /*!< BEEP clock Active Halt/Halt mode */
#define CLK_ICKCR_FHWU ((uint8_t)0x20) /*!< Fast Wake-up from Active Halt/Halt mode */
#define CLK_ICKCR_SAHALT ((uint8_t)0x10) /*!< Slow Active-halt mode */
#define CLK_ICKCR_LSIRDY ((uint8_t)0x08) /*!< Low speed internal RC oscillator ready */
#define CLK_ICKCR_LSION ((uint8_t)0x04) /*!< Low speed internal RC oscillator enable */
#define CLK_ICKCR_HSIRDY ((uint8_t)0x02) /*!< High speed internal RC oscillator ready */
#define CLK_ICKCR_HSION ((uint8_t)0x01) /*!< High speed internal RC oscillator enable */
#define CLK_PCKENR1_TIM2 ((uint8_t)0x01) /*!< Timer 2 clock enable */
#define CLK_PCKENR1_TIM3 ((uint8_t)0x02) /*!< Timer 3 clock enable */
#define CLK_PCKENR1_TIM4 ((uint8_t)0x04) /*!< Timer 4 clock enable */
#define CLK_PCKENR1_I2C1 ((uint8_t)0x08) /*!< I2C1 clock enable */
#define CLK_PCKENR1_SPI1 ((uint8_t)0x10) /*!< SPI1 clock enable */
#define CLK_PCKENR1_USART1 ((uint8_t)0x20) /*!< USART1 clock enable */
#define CLK_PCKENR1_BEEP ((uint8_t)0x40) /*!< BEEP clock enable */
#define CLK_PCKENR1_DAC ((uint8_t)0x80) /*!< DAC clock enable */
#define CLK_PCKENR2_ADC1 ((uint8_t)0x01) /*!< ADC1 clock enable */
#define CLK_PCKENR2_TIM1 ((uint8_t)0x02) /*!< TIM1 clock enable */
#define CLK_PCKENR2_RTC ((uint8_t)0x04) /*!< RTC clock enable */
#define CLK_PCKENR2_LCD ((uint8_t)0x08) /*!< LCD clock enable */
#define CLK_PCKENR2_DMA1 ((uint8_t)0x10) /*!< DMA1 clock enable */
#define CLK_PCKENR2_COMP ((uint8_t)0x20) /*!< Comparator clock enable */
#define CLK_PCKENR2_BOOTROM ((uint8_t)0x80) /*!< Boot ROM clock enable */
#define CLK_PCKENR3_AES ((uint8_t)0x01) /*!< AES clock enable */
#define CLK_PCKENR3_TIM5 ((uint8_t)0x02) /*!< Timer 5 clock enable */
#define CLK_PCKENR3_SPI2 ((uint8_t)0x04) /*!< SPI2 clock enable */
#define CLK_PCKENR3_UASRT2 ((uint8_t)0x08) /*!< USART2 clock enable */
#define CLK_PCKENR3_USART3 ((uint8_t)0x10) /*!< USART3 clock enable */
#define CLK_CCOR_CCODIV ((uint8_t)0xE0) /*!< Configurable Clock output prescaler */
#define CLK_CCOR_CCOSEL ((uint8_t)0x1E) /*!< Configurable clock output selection */
#define CLK_CCOR_CCOSWBSY ((uint8_t)0x01) /*!< Configurable clock output switch busy flag */
#define CLK_ECKCR_LSEBYP ((uint8_t)0x20) /*!< Low speed external clock bypass */
#define CLK_ECKCR_HSEBYP ((uint8_t)0x10) /*!< High speed external clock bypass */
#define CLK_ECKCR_LSERDY ((uint8_t)0x08) /*!< Low speed external crystal oscillator ready */
#define CLK_ECKCR_LSEON ((uint8_t)0x04) /*!< Low speed external crystal oscillator enable */
#define CLK_ECKCR_HSERDY ((uint8_t)0x02) /*!< High speed external crystal oscillator ready */
#define CLK_ECKCR_HSEON ((uint8_t)0x01) /*!< High speed external crystal oscillator enable */
#define CLK_SCSR_CKM ((uint8_t)0x0F) /*!< System clock status bits */
#define CLK_SWR_SWI ((uint8_t)0x0F) /*!< System clock selection bits */
#define CLK_SWCR_SWIF ((uint8_t)0x08) /*!< Clock switch interrupt flag */
#define CLK_SWCR_SWIEN ((uint8_t)0x04) /*!< Clock switch interrupt enable */
#define CLK_SWCR_SWEN ((uint8_t)0x02) /*!< Switch start/stop */
#define CLK_SWCR_SWBSY ((uint8_t)0x01) /*!< Switch busy */
#define CLK_CSSR_CSSDGON ((uint8_t)0x10) /*!< Clock security sytem deglitcher system */
#define CLK_CSSR_CSSD ((uint8_t)0x08) /*!< Clock security sytem detection */
#define CLK_CSSR_CSSDIE ((uint8_t)0x04) /*!< Clock security system detection interrupt enable */
#define CLK_CSSR_AUX ((uint8_t)0x02) /*!< Auxiliary oscillator connected to master clock */
#define CLK_CSSR_CSSEN ((uint8_t)0x01) /*!< Clock security system enable */
#define CLK_CBEEPR_CLKBEEPSEL ((uint8_t)0x06) /*!< Configurable BEEP clock source selection */
#define CLK_CBEEPR_BEEPSWBSY ((uint8_t)0x01) /*!< BEEP clock busy in switch */
#define CLK_HSICALR_HSICAL ((uint8_t)0xFF) /*!< Copy of otpion byte trimming HSI oscillator */
#define CLK_HSITRIMR_HSITRIM ((uint8_t)0xFF) /*!< High speed internal oscillator trimmer */
#define CLK_HSIUNLCKR_HSIUNLCK ((uint8_t)0xFF) /*!< High speed internal oscillator trimmer unlock */
#define CLK_REGCSR_EEREADY ((uint8_t)0x80) /*!< Flash program memory and Data EEPROM ready */
#define CLK_REGCSR_EEBUSY ((uint8_t)0x40) /*!< Flash program memory and Data EEPROM busy */
#define CLK_REGCSR_LSEPD ((uint8_t)0x20) /*!< LSE power-down */
#define CLK_REGCSR_HSEPD ((uint8_t)0x10) /*!< HSE power-down */
#define CLK_REGCSR_LSIPD ((uint8_t)0x08) /*!< LSI power-down */
#define CLK_REGCSR_HSIPD ((uint8_t)0x04) /*!< HSI power-down */
#define CLK_REGCSR_REGOFF ((uint8_t)0x02) /*!< Main regulator OFF */
#define CLK_REGCSR_REGREADY ((uint8_t)0x01) /*!< Main regulator ready */
/**
* @}
*/
/*----------------------------------------------------------------------------ok*/
/**
* @brief Comparator interface (COMP)
*/
typedef struct COMP_struct
{
__IO uint8_t CSR1; /*!< Control status register 1 */
__IO uint8_t CSR2; /*!< Control status register 2 */
__IO uint8_t CSR3; /*!< Control status register 3 */
__IO uint8_t CSR4; /*!< Control status register 4 */
__IO uint8_t CSR5; /*!< Control status register 5 */
}
COMP_TypeDef;
/** @addtogroup COMP_Registers_Reset_Value
* @{
*/
#define COMP_CSR1_RESET_VALUE ((uint8_t)0x00)
#define COMP_CSR2_RESET_VALUE ((uint8_t)0x00)
#define COMP_CSR3_RESET_VALUE ((uint8_t)0xC0)
#define COMP_CSR4_RESET_VALUE ((uint8_t)0x00)
#define COMP_CSR5_RESET_VALUE ((uint8_t)0x00)
/**
* @}
*/
/** @addtogroup COMP_Registers_Bits_Definition
* @{
*/
/* CSR1 */
#define COMP_CSR1_IE1 ((uint8_t)0x20) /*!< Comparator 1 Interrupt Enable Mask. */
#define COMP_CSR1_EF1 ((uint8_t)0x10) /*!< Comparator 1 Event Flag Mask. */
#define COMP_CSR1_CMP1OUT ((uint8_t)0x08) /*!< Comparator 1 Ouptput Mask. */
#define COMP_CSR1_STE ((uint8_t)0x04) /*!< Schmitt trigger enable Mask. */
#define COMP_CSR1_CMP1 ((uint8_t)0x03) /*!< Comparator 1 Configuration Mask. */
/* CSR2 */
#define COMP_CSR2_IE2 ((uint8_t)0x20) /*!< Comparator 2 Interrupt Enable Mask. */
#define COMP_CSR2_EF2 ((uint8_t)0x10) /*!< Comparator 2 Event Flag Mask. */
#define COMP_CSR2_CMP2OUT ((uint8_t)0x08) /*!< Comparator 2 Ouptput Mask. */
#define COMP_CSR2_SPEED ((uint8_t)0x04) /*!< Comparator 2 speed modeMask. */
#define COMP_CSR2_CMP2 ((uint8_t)0x03) /*!< Comparator 2 Configuration Mask. */
/* CSR3 */
#define COMP_CSR3_OUTSEL ((uint8_t)0xC0) /*!< Comparator 2 output selection Mask. */
#define COMP_CSR3_INSEL ((uint8_t)0x38) /*!< Inversion input selection Mask. */
#define COMP_CSR3_VREFEN ((uint8_t)0x04) /*!< Internal reference voltage Enable Mask. */
#define COMP_CSR3_WNDWE ((uint8_t)0x02) /*!< Window Mode Enable Mask. */
#define COMP_CSR3_VREFOUTEN ((uint8_t)0x01) /*!< VREF Output Enable Mask. */
/* CSR4 */
#define COMP_CSR4_NINVTRIG ((uint8_t)0x38) /*!< COMP2 non-inverting input Mask. */
#define COMP_CSR4_INVTRIG ((uint8_t)0x07) /*!< COMP2 inverting input Mask. */
/* CSR5 */
#define COMP_CSR5_DACTRIG ((uint8_t)0x38) /*!< DAC outputs Mask. */
#define COMP_CSR5_VREFTRIG ((uint8_t)0x07) /*!< VREF outputs Mask. */
/**
* @}
*/
/*----------------------------------------------------------------------------ok*/
/**
* @brief External Interrupt Controller (EXTI)
*/
typedef struct EXTI_struct
{
__IO uint8_t CR1; /*!< The four LSB EXTI pin sensitivity */
__IO uint8_t CR2; /*!< The four MSB EXTI pin sensitivity */
__IO uint8_t CR3; /*!< EXTI port B & port D sensitivity */
__IO uint8_t SR1; /*!< Pins Status flag register 1 */
__IO uint8_t SR2; /*!< Ports Status flage register 2 */
__IO uint8_t CONF1; /*!< Port interrupt selector */
uint8_t RESERVED[4]; /*!< reserved area */
__IO uint8_t CR4; /*!< EXTI port G & port H sensitivity */
__IO uint8_t CONF2; /*!< Port interrupt selector */
}
EXTI_TypeDef;
/** @addtogroup EXTI_Registers_Reset_Value
* @{
*/
#define EXTI_CR1_RESET_VALUE ((uint8_t)0x00)
#define EXTI_CR2_RESET_VALUE ((uint8_t)0x00)
#define EXTI_CR3_RESET_VALUE ((uint8_t)0x00)
#define EXTI_CONF1_RESET_VALUE ((uint8_t)0x00)
#define EXTI_SR1_RESET_VALUE ((uint8_t)0x00)
#define EXTI_SR2_RESET_VALUE ((uint8_t)0x00)
#define EXTI_CR4_RESET_VALUE ((uint8_t)0x00)
#define EXTI_CONF2_RESET_VALUE ((uint8_t)0x00)
/**
* @}
*/
/** @addtogroup EXTI_Registers_Bits_Definition
* @{
*/
/* CR1 */
#define EXTI_CR1_P3IS ((uint8_t)0xC0) /*!< EXTI Pin 3 external interrupt sensitivity bit Mask */
#define EXTI_CR1_P2IS ((uint8_t)0x30) /*!< EXTI Pin 2 external interrupt sensitivity bit Mask */
#define EXTI_CR1_P1IS ((uint8_t)0x0C) /*!< EXTI Pin 1 external interrupt sensitivity bit Mask */
#define EXTI_CR1_P0IS ((uint8_t)0x03) /*!< EXTI Pin 0 external interrupt sensitivity bit Mask */
/* CR2 */
#define EXTI_CR2_P7IS ((uint8_t)0xC0) /*!< EXTI Pin 7 external interrupt sensitivity bit Mask */
#define EXTI_CR2_P6IS ((uint8_t)0x30) /*!< EXTI Pin 6 external interrupt sensitivity bit Mask */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -