STM32F407(1)
STM32F407主频为168MHz是指SYSCLK(系统时钟)的频率为168MHz
STM32F407中5个时钟源:
1、LSIRC(32kHz)(低速内部时钟、RC振荡器产生、精度低) --〉IWDGCLK(独立看门狗)
--〉RTCCLK
2、LSEOSC(32.768kHz)(低速外部时钟、晶振产生(石英 / 陶瓷谐振器)、精度高) --〉(最常用)RTCCLK
3、HSIRC(16MHz)(高速内部时钟、RC振荡器产生、精度低) --〉MCO1
--〉SYSCLK
--〉(分频 /M)--〉主PLL
4、HSEOSC(4-26MHz)(高速外部时钟、晶振产生、精度高) --〉分频(系数2-31)--〉RTCCLK
--〉(分频 /M)--〉主PLL
--〉SYSCLK
5、PLLCLK -- 主PLL --〉 VCO ---〉(*N) --〉(/P)--〉PLLCLK --〉SYSCLK
--〉(/Q)--〉PLL48CK(USB模块)
-- 专用PLL(PLLI2S) --〉VCO ---〉(*N) --〉(/R)PLLI2SCLK --〉I2S时钟(涉及音质、音量对频率要求高,专门给了一个PLL)
PLLCLK = (f/M)*N/P
SYSCLK --〉PTP时钟(以太网)
--〉AHB PRESC --〉HCLK(到AHB总线、内核、存储器、DMA)
--〉到Cortex系统定时器
--〉FCLK Cortex (自由运行时钟)
--〉APBx PRESC (外设时钟)
系统时钟输出引脚:
LSEOSC / HSIRC / HSEOSC /PLLCLK(时钟源) --〉 MCO1 --〉PA8
SYSCLK / PLLI2SCLK / HSEOSC / PLLCLK (时钟源) --〉MCO2 --〉PC9
用户可以配置预分频器(1-5),MCO最大输出时钟不超过100MHz
Systick定时器:
Systick定时器(系统滴嗒定时器)是一个24位倒计数定时器,计到0时,从RELOAD寄存器中自动装载定时初值。
只要不把它在Systick控制及状态寄存器中得使能位清除,就永不停息,即使在睡眠模式下也能工作。
常用做延时,或者实时系统的心跳时钟。节省MCU资源,不浪费一个定时器。
Systick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。也可设置Systick中断优先级。
4个Systick寄存器:
CTRL : SysTick 控制和状态寄存器
LOAD :SysTick自动重装载除值寄存器
VAL :SysTick当前值寄存器
CALIB :SysTick校准值寄存器
RTC(实时时钟):
RTC是一个独立的BCD定时器 / 计数器。
BCD(二进码十进数):用4位二进制数来表示1位十进制数中的0-9这10个数码。
RTC提供日历时钟,两个可编程闹钟中断,一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。
两个32位寄存器包含二进码十进制格式(BCD)的秒,分钟,小时(12或24小时制),星期几,日期,月份和年份。此外,还可以提供二进制的亚秒值。
系统可以自动将月份的天数补偿为28、29(闰年),30、31天。并且还可以进行夏令时补偿。
时钟源(LSE(32.768KHz)、HSE_RTC(最高4MHz)、LSI) -> 精确校准(RTC_CALR)-> 异步通道7位预分频器(RTC_PRER、默认值128)-> ck_apre(256Hz)
-> 粗略校准(RTC_CALIBR)->同步15位预分频器(RTC_PRER、默认值256)-> ck_spe(默认值1Hz、秒)
自动唤醒功能:16位唤醒自动装载寄存器(RTC_WUTR)-> WUTF
更多推荐
STM32F407(1)
发布评论