查看: 2098|回复: 1

学习STM32,必学滴答定时器

[复制链接]
  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-8-12 17:37:17 | 显示全部楼层 |阅读模式
    分享到:
         一个正常运行的电路系统需要一个时基,这个时基就好似人的心脏。在STM32系统中,充当这个时基的东东,我们称之为“系统滴答定时器”,英文名为Systick Time.
    我们在51系列芯片的编程中,通常会用到延时函数,当时我们是用死循环来达到这个效果的,在STM32电路系统里面,我们就可以用Systick Time这个模块达到更胜一筹,精确延时的目的。这个模块即使在系统睡眠的时候也是工作的,这样可以用之做一个系统闹钟或者是实现待机唤醒这个功能。
    那么如何使用这个模块呢?下面这个文档进行了,详细的介绍。

    这个模块就是一个简单的倒计时器,对于它,有三个常用的寄存器

    Ø  CTRL 控制状态寄存器
    Ø  LOAD重装载寄存器
    Ø  VALUE当前数值寄存器

    CTRL
    BIT16                                                                                     BIT2         BIT1      BIT0
      
    FLAG
      














    0/1
    ENABLE

    Ø  BIT0  对其写1,使能定时器
    Ø  BIT1  对其写1,开启中断,如果保持默认值则无动作
    Ø  BIT2  该模块的时钟源,对其写1用内核时钟(FCLK CORTEX);对其写0,用外部时钟;默认为外部时钟(从系统时钟过来的)
    Ø  BIT16  是标志位,当CNT=0,该位硬件置1;当CNT不等于0,该位为0。该位读取后,自动清零,属于读取自动清零。

    LOAD
    BIT23                                                                                                                    BIT0
      
      



















    可以对其进行赋值,但是赋值不一定立马奏效,当CNT为0时,所赋值流入该寄存器,同时以该值为到计数的起点。

    VALUE
    读取时返回当前倒计数的值;写之则清零该寄存器,同时还会清除在CTRL
    的标志位。
    下面写一段代码,作为本节的结尾。
    void delay_init()      
    {
       SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
      //选择外部时钟  HCLK/8即为9M的时钟
      fac_us=SystemCoreClock/8000000;                                       
      //每个us需要的systick时钟数  
      fac_ms=(u16)fac_us*1000;                                               
      //每个ms需要的systick时钟数   
    }
    void delay_us(u32 nus)
    {
      SysTick->VAL=0X00;                    //清空计数器
      SysTick->LOAD=nus*fac_us;        //初始值加载
      SysTick->CTRL|=0X01;                  //ENABLE,开始计数
      while(!(SysTick->CTRL>>16));     //等待标志位为1      
      SysTick->CTRL&=0X00;                  //关闭计数器
    }

    评分

    参与人数 1与非币 +5 收起 理由
    loveeeboard + 5 三周年铜板双倍!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2018-3-28 17:24
  • 签到天数: 276 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-8-12 19:01:25 | 显示全部楼层
    额   好水   我以为有什么神论呢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-18 18:15 , Processed in 0.143502 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.