博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
stm32笔记:Systick系统滴答定时器
阅读量:7061 次
发布时间:2019-06-28

本文共 1444 字,大约阅读时间需要 4 分钟。

hot3.png

Systick :系统心跳定时器,提供系统节拍

             裸机程序中可作为独立的延时定时器
一:用途
1.产生操作系统的时钟节拍
2.便于不同处理器之间程序移植
SysTick定时器被捆绑在NVIC中,异常号15
3.作为一个闹铃测量时间用于测量时间,

 但当处理器在调试期间被喊停(halt)时,则SysTick定时器亦将暂停运作

二:时钟树

以AHB时钟或者AHB/8作为运行时钟。

三:寄存器

它有四个寄存器

STK_CSR, 0xE000E010 -- 控制寄存器
STK_LOAD, 0xE000E014 -- 重载寄存器
STK_VAL, 0xE000E018 -- 当前值寄存器
STK_CALRB, 0xE000E01C -- 校准值寄存器
stm32的时钟源
选择外部时钟源时,则Systick时钟为HCLK /8
选择内核时钟源时,则Systick时钟为HCLK
延时原理

systick定时器是24位的递减计数器,设定初值并使能它后,脉冲计数值被保存到当前值寄存器(STK_VAL)

它会每个系统时钟周期计数器减1,计数到0 时,触发中断,将从RELOAD 寄存器中自动重装载定时初值到STK_VAL。

只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息.

四:代码

AHB时钟1/72 000 000  ,

初始化:初始化已经把嘀嗒定时器打开了,为了可控,代码中关闭了定时器。

SysTick->CTRL &=  SysTick_CTRL_ENABLE_Msk;主程序调用打开嘀嗒。

void SysTick_Init(void){	/* SystemFrequency / 1000    1ms中断一次	 * SystemFrequency / 100000	 10us中断一次	 * SystemFrequency / 1000000 1us中断一次	 *///	if (SysTick_Config(SystemFrequency / 100000))	// ST3.0.0库版本	if (SysTick_Config(SystemCoreClock / 100000))	// ST3.5.0库版本	{ 		/* Capture error */ 		while (1);	}		// 关闭滴答定时器  	SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
// 打开闭滴答定时器  	//SysTick->CTRL &=   SysTick_CTRL_ENABLE_Msk;
}

中断:

stm32f10x_it.c中的接口代码

void SysTick_Handler(void){	TimingDelay_Decrement();	}
void TimingDelay_Decrement(void){	if (TimingDelay != 0x00)	{ 	TimingDelay--;	}}
裸机中嘀嗒并不是一直开启的,延时可以这样做。
void Delay_us(__IO u32 nTime){ 	TimingDelay = nTime;		// 使能滴答定时器  	SysTick->CTRL |=  SysTick_CTRL_ENABLE_Msk;	while(TimingDelay != 0);}

转载于:https://my.oschina.net/390871020/blog/656994

你可能感兴趣的文章
VS2017 ASP.NET C#编译ScriptManager bug
查看>>
模数混合电路(模拟、数字电源和地)
查看>>
自然语言处理入门
查看>>
Jquery中children、find区别
查看>>
java窗体
查看>>
zipkin-client:brave核心代码思路整理
查看>>
iOS学习31之UITableVIewCell自定义
查看>>
mysql 分区
查看>>
移动端pc端同步测试工具 Browsersync的安装和使用
查看>>
将获得datebox值的文本形式转为日期格式
查看>>
写给大数据开发初学者的话5[转]
查看>>
LDA数学八卦笔记(三)LDA文本建模
查看>>
2017-2018-1 20155229 《信息安全系统设计基础》课下作业
查看>>
python beautifulsoup爬虫
查看>>
Centos6.x X64 飞信安装
查看>>
python Docker 查看私有仓库镜像
查看>>
mysql主从
查看>>
x2engine
查看>>
1084 矩阵取数问题 V2
查看>>
图片头代码
查看>>