stm32时钟问题

2019-03-23 20:09发布

菜鸟如我刚接触stm32,之前只学过一点51。哪位大侠能说说SysTick时钟,SYSCLK时钟,还有HCLK时钟之间的联系?看了很久还是不明白,《stm32不完全手册》里面写 //初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init(u8 SYSCLK)
{
 SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟  HCLK/8
 fac_us=SYSCLK/8;     
 fac_ms=(u16)fac_us*1000;
}     而我在网上搜到 晶振时钟进来之后,来驱动系统时钟SYSCLK,SYSCLK并没有直接用来驱动外设,而是要经过AHB预分频器来调整芯片使用者的时钟,那么经过AHB预分频出来的时钟就叫做HCLK. 这样HCLK频率不是比SYSCLK还低吗?不是跟上面的矛盾吗?求大侠指点。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
tzzhuang
2019-03-24 00:51
/ stm32时钟主要结构如下:
首先是时钟输入(晶振,内部rc或外部输入),通常是8MHz
然后经过倍/分频产生系统时钟
系统时钟再经过分频产生送往各个总线的时钟(pclk等)
挂在总线上的外部设备又有各自的分频器,在产生模块的时钟信号.
定时器等外部设备又可以进一步分频,产生更慢的时钟
即输入时钟->系统时钟->总线时钟->外设时钟->定时器输出时钟

在网上搜到这一段话,有点明白了。手册里的程序应该是外部8M的时钟倍频为72M的系统时钟再分频成9M的SysTick时钟。那么SysTick时钟对应上去应该就是定时器输出时钟了吧?HCLK时钟就是总线时钟?不知道对否,哪位大侠能帮忙解答一下?

一周热门 更多>