STM32F1_SysTick系统滴答
来源:互联网 发布:淘宝服装店名字大全 编辑:程序博客网 时间:2024/04/27 20:33
前言
今天讲解“STM32F103 SysTick系统滴答”,“SysTick系统滴答”是属于Cortex-M3内核的一部分,主要是为运行的操作系统提供滴答时钟,如常见的操作系统:uCOS、RTOS等。不管M3芯片属于哪一家公司,它都标配有SysTick这一部分。因此,它属于芯片内核的一部分,主要是为了方便操作系统的移植。
其实,SysTick能实现的功能,都可以由TIM来实现。SysTick无非就是定时中断的功能,它完全可以由TIM定时器来完成。之所以SysTick独立出来就是因为它属于内核一部分,方便用户移植,而且简单方便。学过uCOS的人都知道,以前在51,或者430上面是由定时器完成的时钟滴答,到后面ARM公司就用到了一个好的办法,就是在内核中标配一个SysTick,这样下来移植系统不用那么麻烦了。
SysTick除了在操作系统中起到作用,其实在裸机程序中也起到很大作用,比如:定期处理一段程序、超时定时、串口接收超时等,今天就以“定期处理一段程序”为例来说一下。
说到操作系统,后期我也会花一定时间讲解一下uCOS操作系统,感兴趣的朋友可以关注一下。
每天讲解的不仅仅是基础,而是重点,不起眼的重点,容易被人忽视的重点。关注微信公众号“EmbeddDeveloper”还有更多精彩等着你。
本文特点: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系统滴答
- LPC1768之系统滴答定时器
- 8. Systick系统滴答实现
- stm32系统滴答定时器使用
- stm32 系统滴答定时器Systick
- 滴答滴答滴答滴答
- 滴答滴答滴答滴答滴答
- 滴答滴答滴答滴答滴答滴答滴答滴答滴答
- 系统滴答定时器——SysTick
- 系统滴答定时器(systick)的应用
- stm32笔记:Systick系统滴答定时器
- STM32---系统滴答定时器(systick)应用
- STM32-------系统滴答定时器(systick)应用
- 系统滴答定时器(systick)应用
- STM32---系统滴答定时器(systick)应用
- 系统滴答定时器(systick)应用
- STM32——系统滴答定时器
- STM32之SysTick(系统滴答定时器)
- Android JNI基础:什么是JNI
- AndroidStudio如何配置NDK/JNI开发环境
- java学习总结(06,05.16)计算机对数据的储存方式以及原码反码补码的概念
- Majority Element
- 博客迁移
- STM32F1_SysTick系统滴答
- 【Java】Java虚拟机------内存划分
- SQL Server 存储过程
- git常用命令与小结
- 【Endian】C语言的大小端及其简单的判断。
- iOS视频播放
- poj 2151 Check the difficulty of problems 概率dp
- win7用zip安装mysql
- Java和C++你知道这些吗?