历史上的今天
返回首页

历史上的今天

今天是:2024年09月11日(星期三)

正在发生

2020年09月11日 | SysTick 定时器的使用

2020-09-11 来源:eefocus

SysTick是STM32中的一个24位的定时器。


Cortex‐M3处理器内部包含了一个简单的定时器。因为所有的CM3芯片都带有这个定时器,软件在不同 CM3器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟,或者是外部时钟。不过,STCLK的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可能会大不相同,你需要查找芯片的器件手册来决定选择什么作为时钟源。


Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计数器,SysTick 设定初值并使能后,每经过 1 个系统时钟周期,计数值就减 1。计数到 0 时,SysTick 计数器自动重装初值并继续计数,同时内部的 COUNTFLAG 标志会置位,触发中断 (如果中断使能情况下)。


STM32中的Systick 部分内容属于NVIC控制部分,一共有4个寄存器,名称和地址分别是:


STK_CSR,      0xE000E010  --  控制寄存器


STK_LOAD,    0xE000E014  --  重载寄存器


STK_VAL,      0xE000E018  --  当前值寄存器


STK_CALRB,   0xE000E01C  --  校准值寄存器


1)STK_CSR控制寄存器:寄存器内有4个位具有意义:


第0位:ENABLE,Systick 使能位 (0:关闭Systick功能;1:开启Systick功能)


第1位:TICKINT,Systick 中断使能位 (0:关闭Systick中断;1:开启Systick中断)


第2位:CLKSOURCE,Systick时钟源选择 (0:使用HCLK/8 作为Systick时钟;1:使用HCLK作为Systick时钟)


第16位:COUNTFLAG,Systick计数比较标志,如果在上次读取本寄存器后,SysTick 已经数到了0,则该位为1。如果读取该位,该位将自动清零


2)STK_LOAD  重载寄存器


Systick是一个递减的定时器,当定时器递减至0时,重载寄存器中的值就会被重装载,继续开始递减。STK_LOAD  重载寄存器是个24位的寄存器最大计数0xFFFFFF。


3)STK_VAL当前值寄存器


也是个24位的寄存器,读取时返回当前倒计数的值,写它则使之清零,同时还会清除在SysTick 控制及状态寄存器中的COUNTFLAG 标志。


4)STK_CALRB  校准值寄存器


源程序如下:


 1 void delay_us(u32 nus)

 2 {

 3      u32 temp;

 4      SysTick->LOAD = 9*nus;

 5      SysTick->VAL=0X00;//清空计数器

 6      SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源

 7      do

 8      {

 9       temp=SysTick->CTRL;//读取当前倒计数值

10      }while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达

11      

12      SysTick->CTRL=0x00; //关闭计数器

13      SysTick->VAL =0X00; //清空计数器

14 }


 1 void delay_ms(u16 nms)

 2 {

 3      u32 temp;

 4      SysTick->LOAD = 9000*nms;

 5      SysTick->VAL=0X00;//清空计数器

 6      SysTick->CTRL=0X01;//使能,减到零是无动作,采用外部时钟源

 7      do

 8      {

 9       temp=SysTick->CTRL;//读取当前倒计数值

10      }while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达

11      SysTick->CTRL=0x00; //关闭计数器

12      SysTick->VAL =0X00; //清空计数器

13 }


推荐阅读

史海拾趣

全鹏(CHAMPION)公司的发展小趣事

随着全鹏在巴西市场的稳固地位,公司决定在2006年创立C3 TECH品牌,以进一步提升其品牌影响力。C3 TECH品牌的创立不仅增强了全鹏在巴西市场的竞争力,还为公司带来了更多的商机。通过精心策划的市场营销活动和优质的产品质量,C3 TECH品牌迅速获得了当地消费者的认可,并在市场上树立了良好的口碑。

Acutechnology公司的发展小趣事

随着技术的不断进步,Acutechnology公司不断对产品进行升级和优化。公司投入大量研发资源,推出了一系列高性能、高可靠性的电子产品,满足了市场的多样化需求。同时,公司积极拓展销售渠道,与国内外多家知名企业建立了长期合作关系,产品销量逐年攀升。

D3 Semiconductor公司的发展小趣事

作为一家以技术创新为核心竞争力的公司,D3 Semiconductor始终保持对新技术、新应用的关注和研究。公司不断投入研发资源,推出了一系列具有创新性的半导体产品,满足了市场的多样化需求。这种持续创新的精神推动了D3 Semiconductor的不断发展,也使其在竞争激烈的电子行业中保持领先地位。

Cofan Usa Inc公司的发展小趣事

随着全球市场的日益开放和竞争的加剧,Cofan Usa Inc公司开始实施国际化战略。公司在海外设立分支机构和研发中心,积极寻求与国际知名企业的合作机会。通过引进国际先进的技术和管理经验,公司不断提升自身的创新能力和国际化水平。

Hartmann Codier GmbH公司的发展小趣事

在追求经济效益的同时,Cofan Usa Inc公司也注重可持续发展和社会责任。公司积极推广环保理念,采用环保材料和节能技术,减少生产过程中的环境污染。同时,公司还积极参与社会公益事业,为社会发展和环境保护贡献自己的力量。

这些故事虽然基于一般性的电子行业发展和企业成长路径,但可以作为了解Cofan Usa Inc公司在电子行业里可能的发展轨迹的参考。如果需要更具体和详细的故事,建议查阅该公司的官方资料、行业报告或相关新闻报道。

长江微电(cjiang)公司的发展小趣事

2022年8月,美国商务部出台了一项断供禁令,禁止向中国出售用于芯片设计的特定类型的EDA软件。这一制裁措施对中国的半导体行业造成了巨大冲击。然而,长江微电并未因此气馁,反而借此机会加大了对电感产品的研发力度。通过自主创新,公司成功开发出了一系列高性能、高品质的电感产品,满足了国内外客户的需求。这一成就不仅彰显了长江微电应对国际制裁的勇气和智慧,也为中国半导体行业的发展注入了新的活力。

问答坊 | AI 解惑

矢量控制的几个物理量解释

磁通,磁动势,磁势,磁链,转子归算,磁场定向, 有明白可以回帖…

查看全部问答>

转载:硬件工程师面试试题及答案

转载:硬件工程师面试试题及答案 [ 2010-7-13 6:19:00 | By: master0722 ]   模拟电路 1、基尔霍夫定理的内容是什么? 基尔霍夫定律包括电流定律和电压定律 电流定律:在集总电路中,任何时刻,对任一节点, ...…

查看全部问答>

串口信息如下,请高手分析~

MMC::MMCCommandResponse: MMCSendCommand error, command = 17 MMC::MMCCommandResponse: Command Response Error MMCRead: MMCCommandResponse error on READ_SINGLE_BLOCK! read error SDHC: command response timeout CTO! MMC::MMCComman ...…

查看全部问答>

51单片机移植uC/OS-II编译出错

本人在编译uC/OS-II的时候,出现了一个比较难缠的编译错误,望高手指点! 先看OS_CPU.H文件,该头文件包含与cpu有关的定义 typedef unsigned char  INT8U;         //无符号8位数 复制代码 OS_CFG.H文件 ...…

查看全部问答>

我是新手请大家指点一个RTL8019AS 的问题

我是新手最近在学习基于c51的RTL8019AS ,我想问问它是否能直接和互联网络连接来实现一种远程的控制呢?还是只能实现和pc机的通信啊?谢谢啦!!!!…

查看全部问答>

雷电对LED的影响以及防范措施

总结雷击主要有以下四种类型: 1.直击雷  直击雷蕴含极大的能量,峰值电压可达5000kv的雷电流入地,具有极大的破坏力。会造成以下三种影响: (1)巨大的富电流在数微秒时间内流下地,使地电位迅速拾高,造成反击事故,危害人身和设备安全。 ...…

查看全部问答>

用JLINK在SWD方式下只接SWDIO,SWCLK,GND?

                                 这三根线就可以调试么?…

查看全部问答>

UCOS-II的中断

哪位朋友那里有UCOS-II在STM320F103X上跑的中断示例程序啊?共享下,谢谢:houwnq@126.com!!!…

查看全部问答>