前言
今天讲解“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的芯片都适用。
上一篇:STM32中使用快速编程时有哪些需要注意的地方
下一篇:STM32_ USART输入输出的讲解
推荐阅读最新更新时间:2024-11-16 20:26
推荐帖子
- 关于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
设计资源 培训 开发板 精华推荐
- S08PB16和S08PLS评估套件
- STEVAL-IKR002V4、SPIRIT1 868-MHz 低数据速率收发器开发套件
- 蛋蛋- itx-pwm风扇控速板
- LTC6102 电流检测演示板
- IS31FL3728 音频调制 8x8 矩阵 LED 驱动器的典型应用
- AD8111-EB,用于 AD8111 的四层评估板包含相同的评估板并使用相同的外部组件
- LTC1290单片机12位数据采集系统典型应用
- 使用 Cypress Semiconductor 的 S6AL211 的参考设计
- LT1394 的典型应用 - 7ns、低功率、单电源、接地感应比较器
- EVAL-ADAU1962Z,ADAU1962 高性能、低功耗、多位 Sigma-Delta DAC 评估板