Reset and clock control (RCC)
Регистры управления сбросом и тактированием
Имя регистра
Смещение
Наименование
0x0C
RCC clock interrupt register
Регистр управления прерываниями от устройств тактирования (генераторы, делители, умножители и пр.)
0x30
RCC AHB1 peripheral clock enable register
Регистр управления тактированием устройств на шине AHB1
0x34
RCC AHB2 peripheral clock enable register
Регистр управления тактированием устройств на шине AHB2
0x38
RCC AHB3 peripheral clock enable register
Регистр управления тактированием устройств на шине AHB3
0x40
RCC APB1 peripheral clock enable register
Регистр управления тактированием устройств на шине APB1
0x44
RCC APB2 peripheral clock enable register
Регистр управления тактированием устройств на шине APB2
0x50
RCC AHB1 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине AHB1 в режиме пониженного энергопотребления
0x54
RCC AHB2 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине AHB2 в режиме пониженного энергопотребления
0x58
RCC AHB3 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине AHB3 в режиме пониженного энергопотребления
0x60
RCC APB1 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине APB1 в режиме пониженного энергопотребления
0x64
RCC APB2 peripheral clock enabled in low power mode register
Регистр управления тактированием устройств на шине APB2 в режиме пониженного энергопотребления
0x84
RCC PLLI2S configuration register
Регистр конфигурации умножителя интерфейса I2S (Inter-Integrated Circuit Sound)
0x88
RCC PLL configuration register
Регистр конфигурации умножителя интерфейса SAI (Serial Audio Interface)
0x8C
RCC dedicated clock configuration register
Специализированный регистр настройки тактовых импульсов интерфейсов SAI и I2S
0x94
RCC dedicated clocks configuration register 2
Второй специализированный регистр настройки тактовых импульсов
//- stm32f446xx.h
#define PERIPH_BASE 0x40000000UL /* Peripheral base address in the alias region */
#define APB1PERIPH_BASE PERIPH_BASE
#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000UL)
#define AHB1PERIPH_BASE (PERIPH_BASE + 0x00020000UL)
#define AHB2PERIPH_BASE (PERIPH_BASE + 0x10000000UL)
#define RCC ((RCC_TypeDef *) RCC_BASE)
typedef struct
{
__IO uint32_t CR; /* clock control register, */
__IO uint32_t PLLCFGR; /* PLL configuration register, */
__IO uint32_t CFGR; /* clock configuration register, */
__IO uint32_t CIR; /* clock interrupt register, */
__IO uint32_t AHB1RSTR; /* AHB1 peripheral reset register, */
__IO uint32_t AHB2RSTR; /* AHB2 peripheral reset register, */
__IO uint32_t AHB3RSTR; /* AHB3 peripheral reset register, */
uint32_t RESERVED0; /* Reserved, 0x1C */
__IO uint32_t APB1RSTR; /* APB1 peripheral reset register, */
__IO uint32_t APB2RSTR; /* APB2 peripheral reset register, */
uint32_t RESERVED1[2]; /* Reserved, 0x28-0x2C */
__IO uint32_t AHB1ENR; /* AHB1 peripheral clock register, */
__IO uint32_t AHB2ENR; /* AHB2 peripheral clock register, */
__IO uint32_t AHB3ENR; /* AHB3 peripheral clock register, */
uint32_t RESERVED2; /* Reserved, 0x3C */
__IO uint32_t APB1ENR; /* APB1 peripheral clock enable register, */
__IO uint32_t APB2ENR; /* APB2 peripheral clock enable register, */
uint32_t RESERVED3[2]; /* Reserved, 0x48-0x4C */
__IO uint32_t AHB1LPENR; /* AHB1 peripheral clock enable in low power mode register */
__IO uint32_t AHB2LPENR; /* AHB2 peripheral clock enable in low power mode register */
__IO uint32_t AHB3LPENR; /* AHB3 peripheral clock enable in low power mode register */
uint32_t RESERVED4; /* Reserved, 0x5C */
__IO uint32_t APB1LPENR; /* APB1 peripheral clock enable in low power mode register */
__IO uint32_t APB2LPENR; /* APB2 peripheral clock enable in low power mode register */
uint32_t RESERVED5[2]; /* Reserved, 0x68-0x6C */
__IO uint32_t BDCR; /* Backup domain control register, */
__IO uint32_t CSR; /* clock control & status register, */
uint32_t RESERVED6[2]; /* Reserved, 0x78-0x7C */
__IO uint32_t SSCGR; /* spread spectrum clock generation register, */
__IO uint32_t PLLI2SCFGR; /* PLLI2S configuration register, */
__IO uint32_t PLLSAICFGR; /* PLLSAI configuration register, */
__IO uint32_t DCKCFGR; /* Dedicated Clocks configuration register, */
__IO uint32_t CKGATENR; /* Clocks Gated ENable Register, */
__IO uint32_t DCKCFGR2; /* Dedicated Clocks configuration register 2, */
} RCC_TypeDef;
/****** STM32 specific Interrupt Numbers *************/
...
RCC_IRQn = 5, /* RCC global Interrupt */
...