stm32项目之SysTick滴答器实验

1.SysTick 简介

        SysTick—系统定时器是属于CM3 内核中的一个外设,内嵌在NVIC 中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0 的时候,系统定时器就产生一次中断,以此循环往复。
        因为SysTick 是属于CM3 内核的外设,所以所有基于CM3 内核的单片机都具有这个系统定时器,使得软件在CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。

1.1.SysTick 寄存器介绍

 重点是前面三个寄存器。

注意:

1.数据不可以超过24位。

2.COUNTFLAG这个位如果计数到0就会置1,被读取之后就会置0,可以可以防止多读,利用这个点我们可以很好去实现延时函数。

 2.延时代码

首先滴答计时器,计数到0,就会产生中断,产生中断了,这个时候我们就要对延时的时间进行减1.这个减1有两种实现。

第一种在使用全局变量。然后一直循环,判断变量有没有变动0,让中断函数进行减1,直到为0退出.

第二种使用读取循环读取.COUNTFLAG寄存器的值。如果值为1,就进入循环体进行减1,减到0,break,函数返回。

两种方法都有人使用,不过个人简单第二种好理解。这两种方法野火都有实现,可以去看看他们的代码。

代码:后期会整理比较好的代码再上传。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值