浅析STM32 Systick查询定时的处理过程

发布者:忙中取乐最新更新时间:2023-09-05 来源: elecfans关键字:STM32  Systick 手机看文章 扫描二维码
随时随地手机看文章

STM32处理器有一个24位的系统滴答定时器SysTick,它从重新加载值开始倒数到0,然后在下一个时钟边缘重新加载(包装到)STK_LOAD寄存器中的值,然后在随后的时钟上倒数。

图片

计数标志位COUNTFLAG在系统控制和状态寄存器STK_CTRL的16位,当计时器减计数到0时,返回1。


时钟源选择位CLKSOURCE在系统控制和状态寄存器STK_CTRL的2位,赋值为0时为8分频,赋值为1时为1分频。想要计数速度更快可以选择1分频的时钟源。


SysTick异常请求允许位TICKINT在系统控制和状态寄存器STK_CTRL的1位,赋值为0时禁止异常请求,赋值为1时允许异常请求。软件可以使用COUNTFLAG来判断SysTick是否曾经被计数为零。


计数使能位在系统控制和状态寄存器STK_CTRL的0位,赋值0时禁止计数,赋值1时使能计数。

图片

重装载值RELOAD在SysTick重载值寄存器STK_LOAD的0~23位,加载寄存器指定在启用计数器时和计数器达到0时加载到当前值寄存器STK_VAL的起始值。

图片

当前的计数器值CURRENT在当前值寄存器STK_VAL的1~23位。前值寄存器STK_VALSysTick计数器的当前值。读取返回SysTick计数器的当前值。任何值的写入都会将字段清除为0,并将STK_CTRL寄存器中的COUNTFLAG位清除为0。


查询us、ms延时函数


图片

从时钟树可以知道,系统时钟168Mhz,8分频后得到滴答定时器时钟为21Mhz,装载值(需要延时时间)可根据时钟频率计算求得,每秒可计数21000000次,每微秒可计数21次。装载值和当前值都是24位,最大为16777215,最大微秒定时798915us,最大毫秒定时798ms。


结合LED灯和Systick定时让LED灯500ms闪烁一次,主函数为


#include "stm32f4xx.h"

#include "led.h"

#include "delay.h"



int main()

{

  LED_Init();              //初始化LED灯


  while(1)                //点亮或熄灭LED灯

  {

    GPIOH- >ODR      &=~    (0x01< < 10);      //输出为0,led灯亮

    GPIOH- >ODR      &=~    (0x01< < 11);      //输出为0,led灯亮

    Systick_Delayus(500000);

    GPIOH- >ODR      |=    (0x01< < 10);      //输出为1,led灯灭

    GPIOH- >ODR      |=    (0x01< < 11);      //输出为1,led灯灭

    Systick_Delayms(500);

  }

}

编译成功后将程序烧入,LED每500ms闪烁一次,Systick查询定时成功。


关键字:STM32  Systick 引用地址:浅析STM32 Systick查询定时的处理过程

上一篇:STM32单片机的延时原理和延时函数方法
下一篇:基于STM32单片机的紫外线消毒系统设计

推荐阅读最新更新时间:2024-11-06 11:33

STM32 x 翌控科技 x 米尔电子 | STM32MP135开放式高实时高性能PLC控制器解决方案发布
01前言 随着工业数字化进程加速与IT/OT深入融合,不断增加的OT核心数据已经逐步成为工业自动化行业的核心资产,而OT层数据具备高实时、高精度、冗余度高、数据量大等等特点,如何获取更加精准的OT数据对数字化进程起到至关重要的作用,同时随着国内工业控制系统逐步进入中高端应用,更加精准的控制至关重要,因此工业控制系统高实时高性能需求尤其突出。 面对以上挑战,合作伙伴翌控科技基于米尔STM32MP135开发板发布开放式高实时高性能PLC控制器解决方案,将高精准数据采集、预处理、存储、通信与高实时控制融为一体,为控制系统迈向完全数字化中高端控制提供一个非常好的选择。 02STM32MP135处理器简介 STM32MP1
[嵌入式]
<font color='red'>STM32</font> x 翌控科技 x 米尔电子 | STM32MP135开放式高实时高性能PLC控制器解决方案发布
STM32 FSMC LCD 液晶的驱动—ILI9320
原来老早知道 STM32 具有 带4个片选的静态存储器控制器。支持CF卡、SRAM、PSRAM、NOR和NAND存储器 并行LCD接口,兼容8080/6800模式 这个其实就是FSMC 在这之前我一直使用IO口模拟8080时序感觉操作简单速度也很不错,而且ST官方上的FSMC的说明文档看得实在很晕找不到重点一直没试过FSMC。最近有机会尝试驱动驱动一块2.4的ILI9320由于要接线为了省力气直接使用了 FSMC的接法,顺便整理下写点东西出来。 我想使用12864液晶可能是每个会单片机的基本功了通常用个P0口发送8Bit数据在用一些控制线产生时钟信号,12864使用6800通信方式而小的彩色FTF 或CSTN屏流行8080通信
[单片机]
基于STM32芯片的一款智能台灯
前段时间参加了全国大学生智能互联创新大赛,我们队伍经过半个月的努力做了一款智能台灯,特分享出来供大家学习。 智能台灯侧面图 智能台灯整体图 智能台灯俯视图 作品简介: 随着时代的进步人们对灯的要求也越来越多,台灯是普遍的家用照明设备之一,为了结合国家的节能环保计划以及产品人性化的要求,我们团队研发出了一种多功能用途台灯,将智能与节能环保最大化结合。该智能台灯基于多种模块的相互配合,融入了团队智能环保的设计理念,以及人性化的宗旨使“她”可以更加贴心的照顾我们对灯光的需求。智能灯光调节的设计使她拥有最大化保护用户视力的强大功能,通过我们团队特制的手机APP用户可以随心所欲的对她进行远程监控,本智能台灯强大的外设
[单片机]
基于<font color='red'>STM32</font>芯片的一款智能台灯
STM32的FSMC灵活静态存储器控制器
  FSMC(Flexihie Static Memory Controller)模块只适用于大容量产品。   FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,主要将AHB传输信号转换到适当的外部设备协议,满足访问外部设备的时序要求。   存储器接口包括:   ① SRAM静态随机存储器   ② ROM只读存储器   ③ NOR闪存   ④ PSRAM(4个存储块)   ⑤ 两个NAND闪存块   ⑥ 16位PC卡   STM32之所以能够支持NOR FLASH和NAND FLASH两类访问方式完全不同的存储器扩展,是因为FSMC内部实际包括NOR FLASH和NAND / PC Card两个控制器,分别
[单片机]
<font color='red'>STM32</font>的FSMC灵活静态存储器控制器
keil中STM32设置DEBUG起始地址
在做IAP的时候,分两部分 Bootloader部分起始是0x8000000 APP部分是0x08008000 调试的时候默认设置不能直接写入0x08008000部分 所以作一下设置即可直接DOWNLOAD分别DEBUG APP部分KEIL设置 简单两步即可设置,其实设置的是.scf文件的地址分布
[单片机]
010_STM32程序移植之_lib库建立
1. 测试环境:STM32C8T6 2. 测试接口: 3.串口使用串口一,波特率9600 单片机引脚------------CH340引脚 VCC--------------------VCC GND-------------------GND PA9--------------------RXD PA10-------------------TXD 1. 建立lib库原因:LIB 的一个主要用途,就是用在工作上的,当你某些 C 文件不希望让别人看到源代码,但 又必须给别人使用的时候,把你这些机密的 C 文件编译成 LIB 是一个最好的方式. 2. 在009程序上修改,并为011_STM32开机管理次数做基础 3. 开始修改程
[单片机]
010_STM32程序移植之_lib库建立
STM32 PCB触摸按键(RC检测法)
无意中翻出了大学刚毕业时用来来忽悠老板的触摸按键的程序,突然感概白发又多了。做硬件的不容易,做软件的也不容易,做硬件又做软件的更不容易。。。。 回想起来印象也不深刻,感觉纯粹为了好玩,又发现了键盘边有个有三个焊盘的pcb板,心血来潮把就它翻新了一下。 感觉触摸按键比物理按键简单多了,物理按键还要按键(废话),但是触摸按键的可是是一个铜片,铁片,金属片(反正是导体就行了)。如果手头上又没有pcb按钮的,可以自己随便找个废板,在有铜片的地方挖个按钮引条线出来也是可以的,甚至拿一条导线也可以。手按按钮时要在按键上贴个胶纸绝缘,不然,按下的时候电流都被人体吸光了。 要说明一下,程序和硬件都是借鉴STM8,ST有相关例程,是AN几就忘了
[单片机]
STM32之LED按键中断
*************************************************************************************************************************************** 开发板 :奋斗STM32 CPU :STM32F103 开发环境:keil uVsion4 *****************************************************************************************************************************
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved