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-10 11:25

stm32学习笔记之用systick写delay
一、系统滴答SysTick定时器 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。大多数操作系统需要一个硬件定时器来产生滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务霸占系统;或者吧每个定时器周期的某个时间范围赐予特定的任务等,还有提供各种定时功能,都与滴答定时器有关。因此,需要一个定时器产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统的“心跳”的节奏。该定时器的时钟源可以是内部时钟(FCLK),或者是外部时钟(CM3处理器上的STCLK信号)。SysTick定时器能产生中断,异常中断。(内容摘自《Cortex-M3权威
[单片机]
STM32外设驱动---SysTick精准延时
单片机:STM32F103 库函数:V3.5 描述:利用系统内核文件core_cm3.c内部SysTick实现1ms,1us的精准延时,时钟72MHz,涉及中断服务SysTick_Handler的注册。 delay.h #ifndef __DELAY_H__ #define __DELAY_H__ #include stm32f10x.h extern void DelayMs(__IO uint32_t nTime); extern void DelayUs(__IO uint32_t nTime); //this function for systick handler function ext
[单片机]
STM32F1(Cortex M3内核)存储器映射
本文参考《CM3权威指南》第五章 存储器系统 《STM32_参考手册》2.4 启动配置 《STM32F103xCDE_数据手册》第四章 memory mapping Cortex m3内核规定的存储器映射如下图所示。就好像ARM公司打造了一个柜子,从上到下有这几个抽屉,它规定了每个抽屉放的东西的种类,具体放什么放多少它不管(只要不超过抽屉的大小),由每个芯片厂商自己决定。 图1 cortex m3存储器映射 我们来看看ST公司打造的STM32F1系列芯片是如何在这些抽屉放置东西的。 代码抽屉 在代码这个抽屉,STM32F1布置了Flash模块,用来存储代码,相当于电脑的硬盘,具体展开如下图
[单片机]
LPC1768菜鸟学习之路systick
LPC1768在代码里用到使用systick时,是以如下形式出现 if (SysTick_Config(SystemCoreClock /1000))/1ms进入一次中断/ { while (1); /* 错误情况下就停在这里 } 这个函数的原型是 __STATIC_INLINEuint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) SysTick_LOAD_RELOAD_Msk) return(1); /* Reload value impossible */ SysTick- LOAD = ticks - 1;
[单片机]
stm32F1 DMA
DMA,全称是Direct Memory Access,中文意思为直接存储器访问 DMA可用于实现外设与存储器之间或者存储器与存储器之间数据传输的高效性 DMA请求映像 各通道的DMA1请求: 各通道的DMA2请求: DMA配置步骤 1.使能DMA控制器时钟 2.初始化DMA通道,DMA_InitTypeDef 3.使能外设DMA功能 4.开启DMA的通道 5.查询DMA传输状态 举例 u8 txBuffer = {0}; u8 rxBuffer = {0}; void DMA_send(u32 num) { DMA_Cmd(DMA1_Channel4, DISABLE); DMA_SetCur
[单片机]
<font color='red'>stm32F1</font> DMA
STM32F1的I/O最大能承受多大电压
1 大部分端口是能够承受+5V电压的,但是也有一些是不能的。 2 具体哪些能够承受+5V电压,要参考相应的数据手册,以STM32F103xC 系列的来看,参考数据手册 这里的FT就表示能承受+5V电压 PS:在今天的实际使用中,我的STM32芯片承受的电压到了4V多,但是芯片依然能正常工作。
[单片机]
<font color='red'>STM32F1</font>的I/O最大能承受多大电压
STM32F107VCT6的SysTick配置
在系统时钟为72MHz的前提下,将系统滴答中断配置成1ms周期。 #define SYSCLK_FREQ 72000000 void SysTick_Configuration(void) { //会产生1ms 时间基准 SysTick_Config(SYSCLK_FREQ / 1000); //1ms } stm32f10x_it.c文件中 void SysTick_Handler(void) { //1ms中断进入一次 }
[单片机]
STM32—SysTick系统定时器
SysTick是STM32中的系统定时器,利用SysTick可以实现精确的延时。 SysTick—系统定时器 属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3 内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。 延时模式: SysTick的
[单片机]
STM32—<font color='red'>SysTick</font><font color='red'>系统</font>定时器

推荐帖子

pda被识别为移动硬盘,请问如何解决
pda通过USB连接到PC,被识别为移动硬盘,通过activesync检测时报USB错误刚开始学wince编程,问题比较多,请大家多多指教pda被识别为移动硬盘,请问如何解决如果PDA支持的话应该可以修改注册表来实现activesync连接被识别为activesync或U盘,是驱动的问题如果系统支持activesync连接,是只需要修改注册表就OK但如果CE系统不支持activesync,就很麻烦的修改注册表,使缺省usbfunction驱动为serial_cla
123tom 嵌入式系统
LM3S1968下载问题的请教
在设置时钟的的时候会将FLASH锁死的情况。用同样的设计的板子另外一块就不会锁死。晶振经过测试是正常的。请问这改怎么解决?谢谢。板子是自己设计的板子。之前一直没有这样的问题。附上程序。LM3S1968下载问题的请教补焊下呢!程序呢?回复楼主cclcxy的帖子原帖由cclcxy于2013-1-2316:37发表在设置时钟的的时候会将FLASH锁死的情况。用同样的设计的板子另外一块就不会锁死。晶振经过测试是正常的。请问这改怎么解决?谢谢。板子是自己设计的板子。之前一
cclcxy 微控制器 MCU
硕士论文
有偿求助:帮忙完善一个基于FPGA设计的无尘室。监测指标有温湿度、噪声等。框架有了,但是有些东西不会弄,比如噪声模块。哪位大虾能帮帮忙啊,谢谢!Q158116076硕士论文自己顶一个请教你们导师啊你可以问问相关企业的工作人员或者是有些学校也有无尘室可以问问么~~这个问题很空洞,你考验说下这个设计的方案和技术参数什么的,没有办法回答你啊顶你一下,你提的问题太大了,你可以把问题缩小点,比如专门检测环境的湿度温度,我感觉无尘室的检测设备都是专一功能的,功能太多,工作性能不可靠,
shanshixin1983 FPGA/CPLD
24c02的问题
k是全局变量,但k读出来的数值发现是255不是我写进去的数字啊地址线全接地了voidstart(){sck=1;sda=1;_nop_();_nop_();_nop_();_nop_();sda=0;_nop_();_nop_();_nop_();_nop_();}voidstop(){sck=1;sda=0;_nop_();_nop_();_nop_();_nop_();sda=1;_nop_();_nop_();_nop_();
clj13970250610 嵌入式系统
求解,这里的Id怎么计算的?
这篇文章中的LED灯电流Id怎么计算的www.go-gddq.com/html/s696/2010-08/507400.htm求解,这里的Id怎么计算的?按照电容所通过的电流计算的。这里也有个帖子,你可以参考https://bbs.eeworld.com.cn/thread-374898-1-1.html那里给了公式的这个图解释得很清楚了,这种结构不能够推荐使用,电网没有隔离很不安全!我只是想理论分析,并不搞制作!呵呵!回复板凳lshjiang的帖子文章中的好像用了暂态
wx9427 模拟电子
只有A、B两个信息段的数据在掉电时候也被保存吗?那样的话空间太少了,还是需要EEPROM阿
只有A、B两个信息段的数据在掉电时候也被保存吗?那样的话空间太少了,还是需要EEPROM阿你要保存多少数据,256Byte还不够啊?一般FX3X以下的片子RAM也只有256Byte啊!相当于一片24C02只要保证你写的程序flash区域和程序区域不冲突就可以了!可以保存到程序flash中!可是FLASH做存储虽然有它的优点,但是缺点也非常突出,就是对保持的数据做管理时候,相对于E2ROM要麻烦的多,而且2.7V以下就不能操作,也比不上E2ROM,可惜E2ROM的操作周期比FLASH慢
小小書僮 微控制器 MCU
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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