菜鸟如我刚接触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还低吗?不是跟上面的矛盾吗?求大侠指点。
此帖出自
小平头技术问答
首先是时钟输入(晶振,内部rc或外部输入),通常是8MHz
然后经过倍/分频产生系统时钟
系统时钟再经过分频产生送往各个总线的时钟(pclk等)
挂在总线上的外部设备又有各自的分频器,在产生模块的时钟信号.
定时器等外部设备又可以进一步分频,产生更慢的时钟
即输入时钟->系统时钟->总线时钟->外设时钟->定时器输出时钟
在网上搜到这一段话,有点明白了。手册里的程序应该是外部8M的时钟倍频为72M的系统时钟再分频成9M的SysTick时钟。那么SysTick时钟对应上去应该就是定时器输出时钟了吧?HCLK时钟就是总线时钟?不知道对否,哪位大侠能帮忙解答一下?
一周热门 更多>