Reset and clock control (RCC)

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


Имя регистра
Смещение
Наименование
0x00
RCC clock control register
Регистр управления тактированием
0x04
RCC PLL configuration register
Регистр настройки умножителя PLL
0x08
RCC clock configuration register
Регистр настройки тактовой частоты
0x0C
RCC clock interrupt register
Регистр управления прерываниями от устройств тактирования (генераторы, делители, умножители и пр.)
0x10
RCC AHB1 peripheral reset register
Регистр сброса периферии шины AHB1
0x14
RCC AHB2 peripheral reset register
Регистр сброса периферии шины AHB2
0x18
RCC AHB3 peripheral reset register
Регистр сброса периферии шины AHB3
0x20
RCC APB1 peripheral reset register
Регистр сброса периферии шины APB1
0x24
RCC APB2 peripheral reset register
Регистр сброса периферии шины APB2
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 в режиме пониженного энергопотребления
0x70
RCC Backup domain control register
Регистр управления доменом резервного копирования
0x74
RCC clock control & status register
Регистр флагов сброса и управления LSI генератором
0x80
RCC spread spectrum clock generation register
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
0x90
RCC clocks gated enable register
Регистр настройки синхронизации тактовых импульсов
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          */
...