STM32F1_ SysTick系统滴答

发布者:数据舞者最新更新时间:2023-10-04 关键字:STM32F1  SysTick  系统滴答 手机看文章 扫描二维码
随时随地手机看文章

前言

今天讲解“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的芯片都适用。

关键字:STM32F1  SysTick  系统滴答 引用地址:STM32F1_ SysTick系统滴答

上一篇:STM32中使用快速编程时有哪些需要注意的地方
下一篇:STM32_ USART输入输出的讲解

推荐阅读最新更新时间:2024-11-16 20:26

STM32 开发板入门教程 (三) 系统时钟 SysTick
(一) 背景介绍 在传统的嵌入式系统软件按中通常实现 Delay(N) 函数的方法为: for(i = 0; i = x; i ++); x --- 对应于 对应于 N 毫秒的循环值 对于STM32系列微处理器来说,执行一条指令只有几十个 ns,进行 for 循环时,要实现 N 毫秒的 x 值非常大,而且由于系统频率的宽广,很难计算出延时 N 毫秒的精确值。针对 STM32 微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用 Delay(N)。 (二) STM32 SysTick 介绍 Cortex-M3 的内核中包含一个 SysTick 时钟。SysTick 为一个 24 位递减计
[单片机]
STM32中对SysTick_Init()函数(sysTick_Config()、TimingDelay_Decrement()自定义)和Delay_us()的理解
STM32中对SysTick_Init()函数(sysTick_Config()、TimingDelay_Decrement()自定义)和Delay_us()的理解: 实验:3个LED灯以500ms的频率闪烁。
[单片机]
STM32中对<font color='red'>SysTick</font>_Init()函数(<font color='red'>sysTick</font>_Config()、TimingDelay_Decrement()自定义)和Delay_us()的理解
stm32快速学习6——SysTick 定时1s控制LED
设置使用外部8M晶振 设置引脚功能 设置systick为1s中断 利用systick中断就可以得到1s时间 //////////////////////////////////////////////////////////////////////////前言///////////////////////////////////////////////////////////////////////////////////////// stm32的systick通过少数的程序设置,当使用systick_config()函数之后,其载入值就是你的参数,并且自动打开中断,并将中断设为最低的优先级,将其时钟设为HCLK即系统时钟7
[单片机]
stm32快速学习6——<font color='red'>SysTick</font> 定时1s控制LED
STM32F1小白系列之四、独立看门狗(IWDG)
一、看门狗原理 1、单片机中有一个【寄存器(计数器)】专门用来倒计数,这个计数器倒计数是独立于程序之外的,不受程序影响的。(程序是井,计数器是河,井水不犯河水,你跑你的程序,我记我的数,互不影响。) 2、但是: 这个【计数器】会有一个初值,这个值会逐次递减,终有一刻会自减到0,当计数自减到0的时候,【系统】就会强制重启,程序会从头开始运行。 而当计数器每次倒计数到0之前,如果往计数器里面重新写入一次数值,他就永远不会倒计数到0,这时候系统也就不会重启了。 3、所以: 程序员写程序的时候,如果开启了看门狗,会在程序中实现这样一个功能——专门设定固定的时间循环往复的往【计数器】中写入一个数值(喂狗)。 当程序正常
[单片机]
STM32库函数与滴答定时器(SysTick
SysTick定时器:系统滴答定时器是一个非常基本的倒计时定时器,每隔一定的时间产生一个中断,即使是系统在睡眠模式下也能工作,它使得OS在各CM3器件间的移植过程中不必修改系统定时器的代码,将移植变得简单。滴答定时器被捆绑在NVIC中,用于产生SYSTICK异常。 功能:大多数操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。比如,为多个任务给予不同数目的时间片,确保没有一个任务能一直抢占CPU;或者将每个定时器周期的某个时间范围赐予特定的任务,为系统提供各种定时功能。 下面来看一下SysTick相关的几个寄存器: 在V3.5库函数中,有关SysTick的相关配置在core_cm3.h中: 点击(此处
[单片机]
STM32库函数与<font color='red'>滴答</font>定时器(<font color='red'>SysTick</font>)

推荐帖子

关于S3C2443开发板
本人现在正在预研一个项目,硬件平台是SAMSUNGS3C2443,我做2440的BSP开发两年,OS是WINCE5.0,现在一下跳到2443,心里没底,主要是要加ATA和WIFI功能,目前对2443了解不是很多,仅仅是粗略的读过DATASHEET,目前,计划买个开发包(重点是驱动),哪位大虾给点意见,目前国内哪家的开发板做的比较好的?或者有个人有这个资源的也可以考虑购买,2443和2440开发重点注意哪些不一样的地方?不吝赐教!关于S3C2443开发板顶,可以看看周立功有没有。没用过24
cibgbvb 嵌入式系统
请教高手控制电路调试问题
该电路以前发出来过,是测绘的电路,与原电路完全相同,仅元件安放的位置不同在未加负载电机时测量的管脚电压与原电路测绘的完全相同,加上负载电机后数据不同,1管脚输出电压仅1V足有无法导通Q3而原来的电路1引脚输出能到5V以上另芯片,电容都已经换过原电路的,但还是不行电路工作原理:按下开关后,芯片上电瞬间初态1引脚输出高电平(10V左右),同时负载输出电压从5引脚进入芯片,引起2引脚电压变化有劳大虾们帮忙分析下原因谢谢 请教高手控制电路调试问题标一下Q3,是个N沟道场效应管方便的话
simonprince 模拟电子
A Dual-Varactor Analog Phase Shifter Operating at
AnMMICanalogreflectionphaseshifterachieves120\"ofphaseshiftfrom6to18GHzusingadual-varactorreflectioncircuitwhichallowsvaractorswitha3:1capacitanceratiotoachievetheperformancethatnormallyrequires10:1diodes.The
JasonYoo 工控电子
MATLAB Simulink系统仿真课件及代码
资料包括《精通MATLAB/Simulink系统仿真》PPT课件和源程序代码。《精通MATLAB/Simulink系统仿真》主要分为三大部分,共15章。第一部分主要介绍MATLAB基础知识、Simulink仿真入门、Simulink模型的建立与仿真、Simulink常用命令库分析等;第二部分主要为基于Simulink的S-Function建模、控制系统Simulink仿真、基于PID的控制系统仿真等;第三部分则涉及Simulink高级应用,包括模糊逻辑控制仿真、电力系统仿真、通
arui1999 下载中心专版
电子钟程序问题
#includereg52.h#defineucharunsignedchar#defineON0#defineOFF1sbitbuzz=P2^1;sbitkey_1=P1^0;sbitkey_2=P1^1;sbitkey_3=P1^2;sbitkey_4=P1^3;uchardisplay_code={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90},display_sel={0xf
hbwzh 嵌入式系统
【 ST NUCLEO-G071RB测评】初识NUCLEO-G071RB
2019年开年之际有幸获得了NUCLEO-G071RB开发板测评机会,非常高兴!借此机会感谢EEWORLD论坛!感谢ST公司!这次测试的平台NUCLEO-G071RB开发板的娘家在这里:https://www.stmcu.com.cn/index.p.../261/layout/product更多相关资讯可点击进入查询。本次分享内容主要为开箱、对NUCLEO开发板及板载STM32G071RBT6微控制器的初步学习。一、开箱。NUCLEO-G071RB的包装与
lising stm32/stm8
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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