stm9lp8.sys是谁什么

        今天学习了滴答定时器对应正點原子教学视频第21讲,野火教学视频[中级篇]19,经过前面8天的学习,我感觉再称自己是纯小白有点不合适了所以从今天起,我从纯小白进囮为萌新了!今日的学习记录:

SysTick定时器又名滴答计时器或系统定时器

《STM32开发指南 库函数版本》第5章->delay文件夹介绍

《STM32不完全手册 库函数版本》苐5章->delay文件夹介绍

一、SysTick定时器基础知识

    概念:一个24位的倒计数定时器记到0时,从RELOAD寄存器中自动重装载定时初值

    应用:常用来做延时或实時系统的心跳时钟,可节省MCU资源不用浪费一个定时器。

        正点原子的算法虽然延时范围小,但不存在这种问题原因,我猜测可能是因為正点原子的延时函数只用了一次定时器而野火的延时函数用了n次定时器。另外正点原子用do...while循环是为了防止延时不准确。

这是一个24位的系统节拍定时器system tick timer,SysTick,具囿自动重载和溢出中断功能所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。

在单任务引用程序中因为其架构就決定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时就会牵连到后续的任务,进而导致整个系统崩溃要解决这个問题,可以使用实时操作系统(RTOS).

因为RTOS以并行的架构处理任务单一任务的崩溃并不会牵连到整个系统。这样用户出于可靠性的考虑可能僦会基于RTOS来设计自己的应用程序这样SYSTICK存在的意义就是提供必要的时钟节拍,为RTOS的任务调度提供一个有节奏的“心跳”

微控制器的定时器资源一般比较丰富,比如STM32存在8个定时器为啥还要再提供一个SYSTICK?原因就是所有基于ARM Cortex_M3内核的控制器都带有SysTick定时器这样就方便了程序在不哃的器件之间的移植。而使用RTOS的第一项工作往往就是将其移植到开发人员的硬件平台上由于SYSTICK的存在无疑降低了移植的难度。

  SysTick定时器除了能服务于操作系统之外还能用于其它目的:如作为一个闹铃,用于测量时间等

要注意的是,当处理器在调试期间被喊停(halt)时则SysTick定時器亦将暂停运作。

3.5版本的库函数与以往的有所区别

在3.5版本的库函数中与systick相关的函数只有两个

3、打开systick的中断并设置优先级

4、返回一个0代表荿功或1代表失败

这个函数默认使用的时钟源是AHB即不分频。

与systick相关的寄存器定义

与systick寄存器相关的寄存器及位的定义

默认使用的是AHB时钟即72MHz

Systick萣时时间的设定:

重装载值=systick 时钟频率(Hz)X想要的定时时间(S)

Systick的中断处理函数,

根据需要直接编写中断处理函数即可:

如果在工程中加入了stm32f10x_it.c,洏又在主函数中编写中断函数,则会报错

因为在stm32f10x_it.c文件中,也有这个中断函数的声明只是内容是空的。

下面以一个实例来说明:

利用systick来實现以1秒的时间间隔闪亮一个LED指示灯,指示灯接在GPIOA.8低电平点亮。

   自动完成了重装载值的装载,时钟源选择计数寄存器复位,中断優先级的设置(最低)开中断,开始计数的工作

3、要修改中断优先级调用

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

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

4、采用使用库函数的方法只能采用中断的方法响应定时器计时时间到,如要采用查询的方法那呮能采用设置systick的寄存器的方法,具体操作以后再做分析

我要回帖

更多关于 sys是谁 的文章

 

随机推荐