历史上的今天
今天是:2025年01月02日(星期四)
2019年01月02日 | stm32中的系统滴答定时器使用
2019-01-02 来源:eefocus
系统滴答定时器对于stm32的初学者来说还是非常重要的,因为随着你学习的深入编程过程中肯定会调用延时函数,比如我之前的一些gpio相关的实验中。那么延时函数的编写也是几种方法的,一般开始接触都是让系统循环等待,利用stm32处理程序所用的机器时间去延时。这种延时函数如下图所示:

很显然这是一个弊端很明显的做法,因为在延时函数进行时系统无法进行其它操作,这样大大降低了系统的效率。所以我们一般在编程中都会去利用定时器去定时。下面我就介绍下用系统滴答定时器的方法。
SysTick定时器(系统滴答定时器)是一个倒计时定时器,被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。SysTick定时器能产生中断,CM3为它专门开出一个异常类型,并且在向量表中有它的一席之地。它使操作系统和其它系统软件在CM3器件间的移植变得简单多了,因为在所有CM3产品间对其处理都是相同的。SysTick定时器能产生中断,CM3为它专门开出一个异常类型,并且在向量表中有它的一席之地。它使操作系统和其它系统软件在CM3器件间的移植变得简单多了,因为在所有CM3产品间对其处理都是相同的。该定时器用法也相对简单,主要它由4个寄存器来控制。其用法步骤如下:
1、配置时钟源,选择外部时钟(STCLK)还是内部时钟(FCLK),时钟分频等
2、计算重载值,并赋值给SysTick重装载数值寄存器重载值*系统周期=中断周期
3、开中断
4、使能SysTick定时器
具体编程实现过程如下图:


上一篇:STM32定时器定时计算公式
下一篇:关于stm32定时器定时周期计算
史海拾趣
|
作为一种新的光源,近年来各大公司和研究机构对LED电源和驱动电路的研究方兴未艾。与荧光灯的电子镇流器不同,LED驱动电路的主要功能是将交流电压转换为直流电压,并同时完成与LED的电压和电流的匹配。随着硅集成电路电源电压的直线下降,LED工作电 ...… 查看全部问答> |
|
本人目前在做毕业论文,里面要用ST与Zigbee通信,因为我是学机械的,又是新接触STM32,所以很多地方都不懂,不过硬件方面已经解决了,主要是程序方面一窍不通,各位大神能不能给个大概思路啊?比如说我就不知道我到底是用SPI呢,还是USART还是GPIO, ...… 查看全部问答> |
|
我最近做激光器的驱动电路,有一个自动功率控制电路这里有一些问题不明白,PD是提供了电流,可是PD的电流方向是向下的,A1运放“+”输入端电流又进不去,那这个方向的电流到底流到哪里呀,这里“+”端又没有接地,电流走不通呀,小弟不明白呀,请各 ...… 查看全部问答> |
|
分享我收集的嵌入式wince/android/linux著名网站和博客地址 3001、android 著名博客 http://blog.csdn.net/Luoshengyang/ ——老罗的android 之旅,一个android大牛人的博客,文章高深莫测,只有少数前期文章适合初学者。 http://blog.csdn.net/mr_raptor ——华清远见一个老师的博客,适合android入门初学 ...… 查看全部问答> |
|
才接触c2000不久,想在程序中采集一些数据存储起来,希望掉电后不丢失,用的f28027,是不是需要i2c外接一个eeprom才行呢,不知道这个片子有没有自带的存储,或者什么方法解决, ...… 查看全部问答> |
|
MSP430F169 P54 输出1之后自动清零是怎么回事? 现在用P54.其片内功能是MCLK的输出,现在设置其为输出,选择为IO功能,可是在置一之后会自动清零。(P5DIR|=BIT4;P5SEL&=~BIT4,P5OUT|=BIT4;)??why?… 查看全部问答> |
|
nxp的芯片我一直都是直接操作寄存器的,带库的是第一次用。还是蛮有新鲜感的。 首先来展示下例程资源 这是最新的版本,有基于LPCXpresso、keil和IAR的。 比较特别的,是当你打开例程中的一个工程,你会发现里面居然集成了很多例程。 当打 ...… 查看全部问答> |




