这里对自己学习STM32F407HAL库开发的一个记录,可能有理解上的错误,还请大家见谅!
这里时钟配置就不过多描述,首先进入Systick初始化函数
HAL_SYSTICK_Config函数是给重装载值赋值,当计数器向下计数未到0(产生中断)时,此时是在死循环里面的。通过计算这个值为1680.
这个函数是位于Coretex内核中的一个函数,用于初始化滴答定时器。
首先与最大重装载值比较,若比最大重装载值大,则直接无初始化操作,将(SystemCoreClock/100000)这个值赋给重装载数值寄存器,然后将当前数值寄存器赋值为0,这样当重装载数值寄存器的值向下递减为0的时候产生一个中断,这个中断处理函数我们可以定义。对CTRL的操作就是对定时器和中断进行使能。
延时函数的实现就是通过SysTick中断函数来实现的,
Systick定时器每产生一次中断,调用一次这个(TimingDelay_Decrement)函数,当咱们传入的递减值为0的时候跳出死循环,从而达到延时的目的。



