STM32滴答定时器(Systick)详细详细解析

发布者:满足的36号最新更新时间:2018-07-17 来源: eefocus关键字:STM32  滴答定时器  Systick 手机看文章 扫描二维码
随时随地手机看文章

在ARM Cortex-M3内核中有一个Systick定时器,它是一个24位的倒计数定时器,当计数到0时,它就会从Load寄存器中自动重装定时初值,只要不把CTRL寄存器中的ENABLE清0,它就永不停。对于滴答定时器的理解主要分为下面几项:

1.滴答定时器的时钟来源


看上面的图会有一个错觉,以为滴答定时器是系统时钟的1/8,其实不是,滴答定时器的时钟既可以是HCLK/8,也可以是HCLK,这个是通过CTRL寄存器进行设定的,了解这一点,对于操作系统的时钟计算很重要,因为要精确计算时钟时间。

2.滴答定时器的寄存器

从这里就能看出,时钟源有两种选择



3.滴答定时器的库函数

  (1)寄存器定义在哪?————在core_cm3.h中。

typedef struct { 

 __IO uint32_t CTRL;    

 __IO uint32_t LOAD;   

__IO uint32_t VAL;    

__I  uint32_t CALIB; 

} SysTick_Type; … 

#define SysTick  ((SysTick_Type *) SysTick_BASE) 


(2)设定步骤

①.选择时钟源

②设定重载数(reload)

③开启中断

④启动滴答定时器


关键字:STM32  滴答定时器  Systick 引用地址:STM32滴答定时器(Systick)详细详细解析

上一篇:STM32学习笔记3——Systick
下一篇:STM32中sysTick的设置

推荐阅读最新更新时间:2024-03-16 16:09

STM32_DAC输出三角波形
今天讲解“STM32F103 DAC输出三角波形”,比较基础,但对于初次使用该功能的朋友来说,还有有借鉴价值。 今天提供并讲解的软件工程,基于昨天的软件工程“DDAC输出三角波形”修改而来。若有疑问,请关注微信公众号“EmbeddDeveloper”获取更多信息。 本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到的朋友关注和推广一下微信公众号,增加一下人气。 每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。 今天的软件工程下载地址(360云盘): https://yunpan.cn/cPi8GB2DyeKzI 访问密码 1a45 STM32F10x的资料可以在我
[单片机]
STM32_DAC输出三角波形
STM32单片机的ISP一键下载
ISP就是In System Programming在线系统编程,最常用的就是通过单片机的串口将程序HEX文件下载到内部FLASH中,单片机重启时就执行内部FLASH中的程序。根据STM32的数据手册,STM32的启动方式和BOOT引脚有关 MCUISP软件是STM32单片机ISP下载程序的软件,就像我们用STC单片机ISP下载程序时通过STCISP软件一样,下载程序时的步骤都是类似的,无非就是选择好串口和波特率,加载HEX文件,选择附加选项后再烧录程序即可。 ISP普通烧录 根据上表所示,我们用STM32的串口下载程序的步骤为: 1.电脑通过USB线连接STM32的串口(因为在STM32开发板上已经设计了USB转串口电路,常
[单片机]
STM32学习 LED跑马灯实验
跑马灯,太经典了,学单片机第一个入门例子。通过跑马灯的学习我们将会掌握最基本的IO口操作,从代码开开始说。本代码并非原创,期间参考了网络上很多资源。 先看主程序 int main(void) { //系统初始化,只要就是一些时钟配置,FLASH配置等等啊,对于我们初学者,先不管 SystemInit(); LED_GPIO_Config(); while (1) { LED1( ON ); // 亮 Delay(0x6FFFEF); LED1( OFF ); // 灭 LED2( ON ); Delay(0x6FFFEF); LED2( OFF );
[单片机]
教你使用stm32接收串口的一帧数据
stm32支持接受单个数据或者一帧数据,若配置单个数据接收中断的话,会出现接收包丢包,数据不完整的情况!因此在stm32的串口中断中,还有一个IDLE中断,用来产生串口接受一帧数据而产生的中断,比如说串口发来n个数据,会产生n次接收中断和一次IDLE中断,因此方便使用者来接收主机发送或者从机返回的数据!若想发送一帧数据到串口请参照我博客中的另一篇文章——教你如何使用stm32发送一帧数据! 为了方便大家移植,提醒大家此次代码中的代码不需要任何修改,只需要复制粘贴即可! 第一步:首先配置串口中断! (我配置的是串口3,可根据自己的使用情况更改配置。需要更改的地方:时 钟RCC,GPIO_PIN,中断入口,将所 有的USAR
[单片机]
STM32中断和事件的对比差异分析
事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。 事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。当你只要产生中断而不想触发其它操作时,就可以用事件屏蔽寄存器实现。 在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。 这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请
[单片机]
STM32驱动ILI9341控制器控制TFTLCD显示
一、用STM32控制TFTLCD显示的编程方法,在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念: 1、色彩深度,这是一个与TFTLCD显存对应的概念;所谓色彩深度就是每个像素点需要多少位的RGB 数据表示该点的颜色信息。注意,不同的TFTLCD显示器的RGB的对应关系不一样,这个可以在LCD 控制芯片手册中找到答案。 例: 某LCD显示支持8、16、24位RGB,这些位数是指该像素点颜色由8、16、24位RGB构成,但是 R\G\B三种颜色各占的位数可以查看数据手册。 2、TFTLCD的操作分为两种: A、对控制寄存器的读写操作(即程序员将要操作LCD显存寄存器的地址设置成可读或者可写)。 B、对
[单片机]
ulink下在ram中调试stm32的方法
1.在项目文件夹 新建 RAM.ini ---------------------------------------------------------------- FUNC void Setup (void) { SP = _RDWORD(0x20000000); // 堆栈指针 PC = _RDWORD(0x20000004); // PC _WDWORD(0xE000ED08, 0x20000000); // 中断向量偏移地址 } LOAD ./basic.axf INCREMENTAL // Download,.axf 根据自己的文件名和目录修改 Setup();
[单片机]
ulink下在ram中调试<font color='red'>stm32</font>的方法
基于STM32的大扭矩永磁同步电机驱动系统
引言   大扭矩永磁同步电机直接驱动由于去掉了复杂的机械传动机构,从而消除了机械结构带来的效率低、维护频繁、噪声与转动惯量大等不利因素,具有效率高、振动与噪声小、精度高、响应快、使用维修方便等一系列突出优点 .近年来,随着电力电子技术、永磁材料、电机设计与制造技术、传感技术、控制理论等的发展,大扭矩永磁同步电机在数控机床、矿山机械、港口机械等高性能系统中得到了越来越广泛的应用 .   交流电机控制系统广泛采用单片机、DSP、FPGA为控制系统核心。STM32 是一种基于ARM 公司Cortex-M3 内核的新型32 位闪存微控制器,采用了高性能、高代码密度的Thumb-2 指令集和紧耦合嵌套向量中断控制器,拥有丰富的外围接口
[单片机]
基于<font color='red'>STM32</font>的大扭矩永磁同步电机驱动系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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