Reset and clock control (RCC)

Регистры управления сбросом и тактированием


Offset: 0x00
RCC clock control register
Регистр управления тактированием
Offset: 0x04
RCC PLL configuration register
Регистр настройки умножителя PLL
Offset: 0x08
RCC clock configuration register
Регистр настройки тактовой частоты
Offset: 0x0C
RCC clock interrupt register
Регистр управления прерываниями от устройств тактирования (генераторы, делители, умножители и пр.)
Offset: 0x10
RCC AHB1 peripheral reset register
Регистр сброса периферии шины AHB1
Offset: 0x14
RCC AHB2 peripheral reset register
Регистр сброса периферии шины AHB2
Offset: 0x18
RCC AHB3 peripheral reset register
Регистр сброса периферии шины AHB3
Offset: 0x20
RCC APB1 peripheral reset register
Регистр сброса периферии шины APB1
Offset: 0x24
RCC APB2 peripheral reset register
Регистр сброса периферии шины APB2
Offset: 0x30
RCC AHB1 peripheral clock enable register
Регистр управления тактированием устройств на шине AHB1
Offset: 0x34
RCC AHB2 peripheral clock enable register
Регистр управления тактированием устройств на шине AHB2
Offset: 0x38
RCC AHB3 peripheral clock enable register
Регистр управления тактированием устройств на шине AHB3
Offset: 0x40
RCC APB1 peripheral clock enable register
Регистр управления тактированием устройств на шине APB1
Offset: 0x44
RCC APB2 peripheral clock enable register
Регистр управления тактированием устройств на шине APB2
Offset: 0x50
RCC AHB1 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине AHB1 в режиме пониженного энергопотребления
Offset: 0x54
RCC AHB2 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине AHB2 в режиме пониженного энергопотребления
Offset: 0x58
RCC AHB3 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине AHB3 в режиме пониженного энергопотребления
Offset: 0x60
RCC APB1 peripheral clock enable in low power mode register
Регистр управления тактированием устройств на шине APB1 в режиме пониженного энергопотребления
Offset: 0x64
RCC APB2 peripheral clock enabled in low power mode register
Регистр управления тактированием устройств на шине APB2 в режиме пониженного энергопотребления
Offset: 0x70
RCC Backup domain control register
Регистр управления доменом резервного копирования
Offset: 0x74
RCC clock control & status register
Регистр флагов сброса и управления LSI генератором
Offset: 0x80
RCC spread spectrum clock generation register
Offset: 0x84
RCC PLLI2S configuration register
Регистр конфигурации умножителя интерфейса I2S (Inter-Integrated Circuit Sound)
Offset: 0x88
RCC PLL configuration register
Регистр конфигурации умножителя интерфейса SAI (Serial Audio Interface)
Offset: 0x8C
RCC dedicated clock configuration register
Специализированный регистр настройки тактовых импульсов интерфейсов SAI и I2S
Offset: 0x90
RCC clocks gated enable register
Регистр настройки синхронизации тактовых импульсов
Offset: 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          */
...