文档介绍:21天学嵌入式开发
第十七讲:时钟控制系统
课程安排
复位和时钟控制(RCC)
复位和时钟控制(RCC)的编程方法
实时时钟(RTC)
实时时钟(RTC)的编程方法
复位和时钟控制(RCC)
三种复位形式:
系统复位
电源复位
备份区域复位
时钟类型
HSI
HSE
PLL
LSE
LSI
RTC
看门狗
RCC寄存器结构
typedef struct
{
vu32 CR; //时钟控制寄存器
vu32 CFGR; //时钟配置寄存器
vu32 CIR; //时钟中断寄存器
vu32 APB2RSTR; //APB2外围设备复位寄存器
vu32 APB1RSTR; //APB1外围设备复位寄存器
vu32 AHBENR; //AHB外围设备时钟使能寄存器
vu32 APB2ENR; //APB2外围设备时钟使能寄存器
vu32 APB1ENR; //APB1外围设备时钟使能寄存器
vu32 BDCR; //备份域控制寄存器
vu32 CSR; //控制和状态寄存器
} RCC_TypeDef;
RCC的编程方法
库函数:
RCC_DeInit函数
RCC_HSEConfig函数
RCC_WaitForHSEStartUp函数
RCC_AdjustHSICalibrationValue函数
RCC_HSICmd函数
RCC_PLLConfig函数
RCC_PLLCmd函数
RCC_SYSCLKConfig函数
RCC_GetSYSCLKSource函数
RCC_HCLKConfig函数
RCC_PCLK1Config函数
RCC_PCLK2Config函数
RCC_ITConfig函数
RCC_USBCLKConfig函数
LKConfig函数
RCC_LSEConfig函数
RCC_LSICmd函数
RCC的编程方法(续)
库函数:
LKConfig函数
LKCmd函数
RCC_GetClocksFreq函数
RCC_AHBPeriphClockCmd函数
RCC_APB2PeriphClockCmd函数
RCC_APB1PeriphClockCmd函数
RCC_APB2PeriphResetCmd函数
RCC_APB1PeriphResetCmd函数
RCC_BackupResetCmd函数
RCC_ClockSecuritySystemCmd函数
RCC_MCOConfig函数
RCC_GetFlagStatus函数
RCC_ClearFlag函数
RCC_GetITStatus函数
RCC_ClearITPendingBit函数
实时时钟(RTC)
实时时钟RTC是一个独立的定时器,可提供时钟日历的功能。
实时时钟RTC支持两种独立的复位类型:
APB1,由系统复位。
RTC,只能由后备域复位。
实时时钟RTC具有3个专门的可屏蔽中断:
闹钟中断
秒中断
溢出中断
实时时钟(RTC)
RTC的复位
读RTC寄存器
配置RTC寄存器
RTC标志的设置
RTC寄存器结构
typedef struct
{
vu16 CRH; //控制寄存器高位
u16 RESERVED0;
vu16 CRL; //控制寄存器低位
u16 RESERVED1;
vu16 PRLH; //预分频加载寄存器高位
u16 RESERVED2;
vu16 PRLL; //预分频加载寄存器低位
u16 RESERVED3;
vu16 DIVH; //分隔值寄存器高位
u16 RESERVED4;
vu16 DIVL; //分隔值寄存器低位
u16 RESERVED5;
TH; //计数寄存器高位
u16 RESERVED6;
TL; //计数寄存器低位
u16 RESERVED7;
vu16 ALRH; //警报寄存器高位
u16 RESERVED8;
vu16 ALRL; //警报寄存器低位
u16 RESERVED9;
} RTC_TypeDef;