文档章节

stm32 SysTick(滴答定时器)

kangxin1234
 kangxin1234
发布于 2015/09/06 18:30
字数 328
阅读 246
收藏 3

    简介:

        1、定时器是一个24位的定时器。

        2、来一个时钟计数减一,减到0触发中断,自动重装。

        3、计数时钟可配置为AHB时钟 或 AHB时钟/8。

    stm32的滴答定时器在V3.5版本的固件库中使用起来非常的简单。just一个函数就开启这个时钟了。

uint8_t SysTick_Config(uint32_t ticks);

    ticks参数是定时器的初始值。配置成功返回0,失败返回1;不过这个函数的原型用keil跟踪不到。

    如果想用的话直接配置就行了。

    常用的有:

        SystemCroeClock/1000000   1us中断一次

        SystemCroeClock/1000        1ms中断一次

    默认是用的AHB时钟如果你想用8分频的话就使用这个函数:

void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);

这个函数在misc.c中,有个参数是两个宏,意思一目了然:

#define SysTick_CLKSource_HCLK_Div8    ((uint32_t)0xFFFFFFFB)
#define SysTick_CLKSource_HCLK         ((uint32_t)0x00000004)

下面是一个例子,LED灯0.5秒闪烁:

main.cpp

#include "stm32f10x.h"
#include "led.h"
#include "stm32f10x_it.h"
#include<string>
#include<time.h>

using namespace std;

void init()
{
	SysTick_Config(72000000/1000);
}

LED led;

int main()
{
	string str;
	uint8_t flag=0;
	uint32_t lastTime=0;
	
	init();
	
	while(1)
	{
		if((getTime()-lastTime)>500)
		{
			lastTime = getTime();
			flag = 1-flag;
			if(flag)
				led.LED2On();
			else
				led.LED2Off();
		}		
	}
}

中断函数SysTick_Handler(),在stm32f10x_it.c中:

uint32_t getTime(void)
{
	return GlobalTime;
}
void SysTick_Handler(void)
{
	++GlobalTime;
}


© 著作权归作者所有

kangxin1234

kangxin1234

粉丝 38
博文 51
码字总数 35417
作品 0
程序员
私信 提问
加载中

评论(1)

X-wolverine
X-wolverine
赞赞赞
STM32之SysTick定时器

SysTick-------操作系统的心跳 SysTick是系统滴答定时器,可以说是操作系统的的“心跳”,它被绑在NVIC中,用于产生SysTick异常(异常号:15)。一旦产生SysTick异常,就会产生滴答中断,这个...

panrenqiu
2018/04/14
0
0
STM32系统滴答_及不可不知的延时技巧 - (上)

我想每个单片机爱好者及工程开发设计人员都有过点灯的经历。流水灯是个好东西,尤其是在调试资源有限的环境中,有时会帮上大忙。 然在最初入门时,如何让这些小灯们按照我们的想法欢快地跑起...

小汉憨憨
2014/04/29
9.1K
0
SysTick的优先级是高还是低

SysTick系统嘀嗒定时器并非STM32独有的,它是Cortex内核的部分,CM3为它专门开出一个异常类型,并且在中断向量表中占有一席之地(异常号15)。这样它可以很方便的移植到不同厂商出CM3内核...

OceanStack
2015/01/24
5.7K
0
【转】浅析STM32中SysTick在3.5固件库中的应用

最近一直在忙STM32的学习,在学习中遇到了不少问题,也经过各种尝试解决问题,在这里我通过博文的形式写出来,也希望能够帮到遇见同样问题的人们。对于STM32系列的芯片,有一个好处就是官方给...

jerry2012cn
2013/06/23
2.1K
0
STM32 HAL库定时器TIM---编码器接口模式配置

cube基本配置,外设开启编码器,串口2 -------------------------------------------------------------------------------------------------------------------------- 错误:error: #20:......

super828
2018/03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

领域驱动中的“贫血症和失忆症” --实践领域驱动--原文

贫血症严重危害着人类健康,并且伴随有危险的副作用。当贫血领域对象被首次提出来时,它并不是一个博得赞美的词汇,它描述的是一个缺少内在行为领域对象。奇怪的是,人们对于贫血领域对象的态...

还仙
29分钟前
5
0
条码打印软件中标签预览正常打印无反应怎么解决

在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决。 一、预览正常情况下,打印没反应 (1)在条码...

中琅软件
39分钟前
5
0
判断字符串的时候

判断字符串的时候一定把常量房前边, //报警程度 String leve = vo.getDeviceAlertDeal().getWarnLevel(); if(("0").equals(leve)) { row.add("无报警"); }else if(("1").equals(leve)) { ro......

简小姐
39分钟前
7
0
Linux maven3.6.2 install

PS:安装 maven 之前请先安装 jdk 1.安装 wget 命令(安装过就不用了) yum -y install wget 2.寻找需要的 maven 版本 https://maven.apache.org/download.cgi 3.进入 /var/local 文件夹 cd...

东方神祇
42分钟前
5
0
Tomcat源码分析二:先看看Tomcat的整体架构

Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server、Service、Connector、Container等组件,接下...

flygrk
44分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部