Systick定时器

Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。相当于系统的"心跳"。

  • 固件库中的Systick相关函数:

SysTick_CLKSourceConfig() //Systick时钟源选择 misc.c文件中

SysTick_Config(uint32_t ticks) //初始化systick,时钟为HCLK,并开启中断

//core_cm3.h/core_cm4.h文件中

  • Systick中断服务函数:

void SysTick_Handler(void);

两种计时方法

1、中断计时(一般不采用,占用资源)

调用了SysTick_Handler中断服务函数

2、查询方式(正点原子采用)

利用了三个函数

void delay_init(void);

用fac_us和fac_ms计算每个us/ms需要的systick时钟数

void delay_us(u32 nus);

利用nus*fac_us实现任意时间的计算,利用了systick的Load、val、ctrl等寄存器。

void delay_ms(u16 nms);同理。

原文地址:https://www.cnblogs.com/yishuad/p/5732321.html