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);同理。
时间: 2024-11-13 09:25:56