SysTick滴答定时器使用库函数实现1us和1ms精确定时(超短代码)(内含源码.c/.h)

文章介绍了SysTick作为Cortex-M4内核中的系统定时器,用于实现微秒和毫秒级别的延时功能。它是一个24位向下计数的定时器,与CPU时钟同步。通过SysTick_Config()函数配置,可以实现不同频率的定时中断,例如1ms、2ms或500us。文章提供了示例代码,展示如何初始化SysTick,以及如何使用它进行微秒和毫秒的延迟操作。

一、SysTick介绍

SysTick—系统定时器是属于CM4内核中的一个外设,内嵌在NVIC中。一般我们叫他系统定时器或者滴答定时器。是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,当重装载数值寄存器的值递减到 0的时候,系统定时器就产生一次中断,以此循环往复。嵌入式操作系统常有一个类似“心跳”的定时器,来分配时间片,实现宏观上的多任务。其实,操作系统的多任务,在微观上,CPU对多任务的管理是分时的。每个任务都给一定的时间片,就是把时间分成N个等份,优先级高或是重要的任务多占几个时间片,优先级低的或是不重要的任务就少占几个时间片。大部分嵌入式操作系统是基于时间片的。如ucos。systick结论总结如下:

1、systick是一个24位的定时器,故重装值最大值为2的24次方 = 16 777 215,要注意不要超出这个值。

2、systick是cortex_m3的标配,不是外设,不需要在RCC寄存器组打开它的时钟。

3、每次systick溢出后会置位计数标志位和中断标志位,计数标志位在计数器重装载后被清除,而中断标志位也会随着中断服务程序的响应被清除,所以这两个标志位都不需要手动清除。

4、采用使用库函数的方法,只能采用中断的方法响应定时器计时时间到,如要采用查询的方法,那只能采用设置systick的寄存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值