1.常见的定时器

滴答(系统)定时器:systick     -- 内核

基本定时器:定时      --STM32

通用定时器:定时+PWM+输入捕获+编码    --STM32

高级定时器:通用定时器+死区+刹车(电机)   --STM32

窗口看门狗,独立看门狗本质上也是定时器

2.系统定时器实现精准计时/定时

举个例子:

定时炸弹   300

什么时候减到0 

更新一次数据的时间  t     300--299需要多长时间

1S更新多少次数据   f

t=1/f

重装载值    300

留给我跑的时间  T=重装载值*t=重装载值/f

定时器重要概念:

重装载值,  计数频率   更新一次数周期  

怎么配置能够延时是1ms呢?

SysTick_Config(72000);//一秒响一次     此函数是内核函数,只要程序运行起来便会调用嘀嗒中断Delay.c内的void SysTick_Handler(void)
	//f=1/t   f=72000000   t=1/72000000s=1/72000ms(执行一条指令需要这些毫秒) 
	//T---装载时间

3.定时器讲解

1.  选择时钟源   72M时钟

2.配置中断

3.设置重装载值

定时器频率

更新一次数据的时间t=1/f=1/72000000s

需要一个1ms的定时,重装载值填啥?

T=1ms=ARR*t

解出来   ARR=T/t=0.001s/(1/72000000s)=0.001*72000000=72000

需要一个2ms的定时,重装载值填啥?

解出来   ARR=T/t=0.002s/(1/72000000s)=0.002*72000000=144000

系统定时器最大定时周期:

T=2^24/f=2^24/72000000=0.23s

STM32F103ZET6-系统嘀嗒计时器--内核_内核函数

函数计数

STM32F103ZET6-系统嘀嗒计时器--内核_内核函数_02

注意调用完后需要把Time0赋值为0

STM32F103ZET6-系统嘀嗒计时器--内核_看门狗_03