我的学习之路_stm32f103c8t6_Day7

172 阅读1分钟

系统时钟

systick是在内核上的外设,向下递减的计数器,可以存储2^24这么多数来计数(16777216),很明显没有达到72M这么大。计数器的周期就是时钟周期,有两个挡位,先用72MHz来说明,每计数一次则花费:1S/(72*10^6),这么长的时间,所以按照72MHz来说就要计数72M才能说明时间过了1S,但是存放不了这么大的数,所以要缩短时间。

因为1S = 1000ms

那么计数72000就表示为1ms.

Systick一般用于操作系统中

系统时钟寄存器的介绍

image.png

  1. STK_CTRL

    • COUNTFLAG

      计数到0时候硬件会将其置1

    • CLKSOURCE

      选择时钟:0:AHB/8 1:AHB

    • TICKINT

      中断使能,1使能 0失能

    • ENABLE

      开始计数:1 开始 0 停止

  2. STK_LOAD

    • 将被重装载的值
  3. STK_VAL

    • 当前计数的值,如果在它地址写值则会将它清零并且清除STK_CTRL.COUNTFLAG标志位