您的位置 首页 解答

STM32学习笔记——运用SysTick定时器做延时

开学了,无法再像假期一样能够一整天玩板了!好在这学期的课说少不少,说多也不多,每周也有十几大节。剩下的时间除去学生工作等一些七七八

开学了,无法再像假日相同能够一整天玩板了!好在这学期的课说少不少,说多也不多,每周也有十几节操。剩余的时刻除掉学生作业等一些七七八八的工作,连续着仍是能看看教程玩玩板!越发发现《STM32菜鸟学习手册——烦琐版》真是不错的入门教程,简略易懂。其他比如《固件库手册》等等官方文件更是必不可少,惋惜ST公司的网页找手册真实费事得很呐!

这两天一直在看有关于体系嘀嗒时钟SysTick的文件,但由于3.5版的固件库较2.0版的库,现已将SysTick相关的驱动函数移除,用户要运用SysTick就有必要改为调用CMSIS中的函数,而网上大多数的例程(包含《菜鸟学习手册》)运用的都是2.0的库,以至于在学习中遇到许多问题,程序编译总会出现问题。一般都是“无法找到与SysTick相关的函数,函数未定义”过错。因而,查找了许多文献才得以处理。

SysTick定时器被捆绑在NVIC中,用于发生SysTick反常(反常号:15)。首要应用于操作体系,作为“嘀嗒中止”保持操作体系“心跳”的节律。当然,SysTick定时器除了能服务于操作体系之外,还能用于其它意图:如作为一个闹铃,用于丈量时刻等。要注意的是,当处理器在调试期间被喊停(halt)时,则SysTick定时器亦将暂停运作。

1.SysTick寄存器:

寄存器

阐明

地址

CTRL

SysTick操控和状况寄存器

0xE000E010

LOAD

Systick重装值寄存器

0xE000E014

VAL

Systick当时值寄存器

0xE000E018

CALIB

SysTick校准值寄存器

0xE000E01C

lSysTick操控和状况寄存器(SysTick_CTRL)

阐明:

CLKSOURCE位:CM3答应为SysTick供给两个时钟源以供挑选。第一个是内核的“自在运转时钟”FCLK。“自在”表现在它不来自体系时钟HCLK,因而在体系时钟中止时FCLK也持续运转。第二个是一个外部的参阅时钟。可是运用外部时钟时,由于它在内部是经过FCLK来采样的,因而其周期有必要至少是FCLK的两倍(采样定理)。许多情况下芯片厂商都会疏忽此外部参阅时钟,因而一般不可用。

COUNTFLAG位:当SysTick定时器从1计到0时,它将把COUNTFLAG方位位;而下述办法能够清零之:

读取SysTick操控及状况寄存器(STCSR);

往SysTick当时值寄存器(STCVR)中写任何数据。

lSysTick重装值寄存器(SysTick_LOAD)

阐明:

当计数器倒数至0时,运用SysTick_LOAD寄存器来指定载入“当时值寄存器”的初始值。初始值能够是1到0x00FFFFFF之间的任何值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/256349.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部