STM32 系统滴答定时器(SysTick)

SysTick

SysTick概念:

SysTick,即系统滴答定时器,包含在M3/4/7内核里面,核心是一个24位的递减计数器。(0——16,777,215)

SysTick工作原理:

系统时钟经过8分频,产生9MHZ,VAL将从设定的LOAD重装载值往下递减,当VAL减到0时,将SysTick控制及状态寄存器(CTRL)的COUNTFLAG位置1,重新将重装载值LOAD赋值给VAL。

SysTick寄存器

1:SysTick控制及状态寄存器(CTRL)

2:SysTick重装载数值寄存器(LOAD)

程序代码

1:定时器初始化

将CTRL寄存器中的CLKSOURCE位置0,表示选择外部时钟源,将TICKINT置1,开启SysTick异常中断,将ENABLE位置1,使能SysTick。

注:SysTick时钟源为9MHZ,即一秒计数9000 000次,1us计算9次。

2:us延时

注:需先将VAL的值清零,再开启SysTick定时器,检测COUNTFLAG是否置1。

3:ms延时

注:延时不能超过SysTick的最大范围。(16,777,215/9=1864135us=1864ms)

总结:为了延时更加准确,所以采用了操作寄存器的方法,CubeMx生成的代码中包含有delay_ms()的代码,但是没用delay_us(),需要自行添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值