STM32单片机SysTick系统滴答功能解析

STM32单片机SysTick系统滴答功能解析,第1张

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

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

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

内容讲解

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

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

一、配置并初始化SysTick

STM32单片机SysTick系统滴答功能解析,STM32单片机SysTick系统滴答功能解析,第2张

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

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

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

二、SysTick_Config函数详情

STM32单片机SysTick系统滴答功能解析,STM32单片机SysTick系统滴答功能解析,第3张

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

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

三、SysTick中断

STM32单片机SysTick系统滴答功能解析,STM32单片机SysTick系统滴答功能解析,第4张

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

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

四、SysTick寄存器

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

STM32单片机SysTick系统滴答功能解析,第5张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2592617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存