当前位置:首页 > 单片机 > 单片机
[导读]前言今天讲解“STM32F103 SysTick系统滴答”,“SysTick系统滴答”是属于Cortex-M3内核的一部分,主要是为运行的操作系统提供滴答时钟,如常见的操作系统:uCOS、RTOS等。不管M3芯片属于哪一家公司,它都标配有SysTi

前言

今天讲解“STM32F103 SysTick系统滴答”,“SysTick系统滴答”是属于Cortex-M3内核的一部分,主要是为运行的操作系统提供滴答时钟,如常见的操作系统:uCOS、RTOS等。不管M3芯片属于哪一家公司,它都标配有SysTick这一部分。因此,它属于芯片内核的一部分,主要是为了方便操作系统的移植。

其实,SysTick能实现的功能,都可以由TIM来实现。SysTick无非就是定时中断的功能,它完全可以由TIM定时器来完成。之所以SysTick独立出来就是因为它属于内核一部分,方便用户移植,而且简单方便。学过uCOS的人都知道,以前在51,或者430上面是由定时器完成的时钟滴答,到后面ARM公司就用到了一个好的办法,就是在内核中标配一个SysTick,这样下来移植系统不用那么麻烦了。

SysTick除了在操作系统中起到作用,其实在裸机程序中也起到很大作用,比如:定期处理一段程序、超时定时、串口接收超时等,今天就以“定期处理一段程序”为例来说一下。

说到操作系统,后期我也会花一定时间讲解一下uCOS操作系统,感兴趣的朋友可以关注一下。


本文特点:1.提供讲解的软件工程; 2.重点代码截图,配讲解。

本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到的朋友关注一下微信公众号,并将文章分享给你的朋友。

下载

提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSVIp4UeSpA9B访问密码 f486

STM32F10x的资料可以在我360云盘下载:

https://yunpan.cn/crBUdUGdYKam2访问密码 ca90

内容讲解

工程概要说明: 系统上电初始化完成,配置SysTick,1秒滴答(中断)10次,执行的一段程序就是“变化LED”,运行该程序就可以看到定义的LED不在1秒钟闪烁10次。

关于“STM32F103 SysTick系统滴答”我把重要的几点在下面分别讲述:

一、配置并初始化SysTick


该函数位于main.c文件下面;

上图中红色箭头处10代表的意思就是:一秒钟滴答(中断)10次,可自行修改这个值。用于系统,我们一般在100 --- 1000之间,也就是要滴答100 --- 1000次。

获取系统时钟,正常情况下,我们这里的RCC_ClocksStructure.SYSCLK_Frequency应该和SystemCoreClock一样,最好像上面程序中直接获取系统时钟,原因很简单,有可能SystemCoreClock与实际的不一样。

二、SysTick_Config函数详情


该函数位于core_cm3.c文件下面;

这个函数是芯片标志的函数接口,我大概讲解一下吧,设置重载值,设置中断优先级,配置并初始化SysTick。

三、SysTick中断

该函数位于stm32f10x_it.c文件下面;

处理的程序就变化LED,也就是注释的语句。

四、SysTick寄存器

有4个寄存器控制SysTick定时器,在STM32参考手册中没有提到,位于“Cortex-M3权威指南Cn”中,在我提供的“STM32F10x的资料”中下载。


说明

今天提供的软件工程基于STM32F103大容量芯片,其实只要适当修改工程的部分配置,STM32F1的芯片都适用。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别为:1.MISO,主机数据输入从机数据输出线(“M”表示主机master,“I”表示输入in,“S”表示从机slaver,“O”表示输出o...

关键字: spi 通信协议 stm32f1

从图中我们可以看出,所有内部设备都是挂载的外设

关键字: stm32f1 位带操作 地址映射 寄存器

上图是LPC1114系统滴答定时器(SysTick)的结构图。系统滴答定时器位于Cortex-M0内核中,也就是说,不论是LPC1114,还是其他的Cortex-M0内核单片机,都有这个系统定时器。其存在的主要目的是为嵌...

关键字: systick 滴答定时器 cortex-m0系统

在"嵌入式学习006_Systick使用(一)"中,详细介绍了Systick中寄存器的使用方法,用到了很多函数,实际上到了3.5版本的标准固件库中,移除了相关驱动函数,用户必须调用CMSIS.h中定义...

关键字: STM32 systick

1 硬件电路配置这里还是借用前面LED电路我就不贴图片。2 时钟说明SysTick和HCK的时钟频率是一样的库函数代码如下/***@briefInitializeandstarttheSysTickcounterandi...

关键字: STM32 systick 定时器

Ⅰ、概述该文写针对初学μC/OS的朋友,基于以下平台来一步一步移植μC/OS嵌入式操作系统。UCOS移植相关平台:系统平台:μC/OS-II(最新V2.92版)硬件平台:STM32F1(适合F1所以系列)开发平台:Kei...

关键字: stm32f1 ucos2 移植

一。Systick原理和配置方法Systick定时器就是系统滴答定时器,CM3 内核的处理器,内部包含了一个 SysTick 定时器, SysTick 是一个 24 位的倒计数定时器,当计到 0 时,将从 RELOAD...

关键字: systick 定时器

Q:什么是SYSTick定时器?SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。Q:为什么...

关键字: STM32 systick 定时器 延时函数

Ⅰ、概述上一篇文章是讲述uC/OS-II Ports下面os_cpu_a.asm、os_cpu_c.c和os_cpu.h文件底层端口代码的移植(修改)和说明,接着上一篇文章来讲述关于UCOS移植应用部分的代码。该文主要针...

关键字: stm32f1 ucos2 移植

SysTick时钟,俗称“嘀嗒定时器”,它能按设定的时间产生一次中断。控制工程代码中随处可见形如delay_ms()之函数。但是一直不清楚其内在机制。今天花时间研究了一下。首先还是在数据手册上看一下SysTick寄存器的...

关键字: Cortex STM32 systick 系统定时器
关闭
关闭