0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F1_ SysTick系统滴答

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-04-08 11:00 次阅读

前言

今天讲解“STM32F103 SysTick系统滴答”,“SysTick系统滴答”是属于Cortex-M3内核的一部分,主要是为运行的操作系统提供滴答时钟,如常见的操作系统:uCOSRTOS等。不管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的芯片都适用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • uCOS
    +关注

    关注

    7

    文章

    177

    浏览量

    77902
  • Systick
    +关注

    关注

    0

    文章

    62

    浏览量

    12945
  • STM32F10
    +关注

    关注

    0

    文章

    43

    浏览量

    15520
收藏 人收藏

    评论

    相关推荐

    STM32F4无法通过系统存储器地址0x1fff0000进入BootLoader引导代码怎么解决?

    FFF0000; /* STM32F4的系统BootLoader地址 */ /* 关闭全局中断 */ DISABLE_INT(); /* 关闭滴答定时器,复位到默认值 */ SysTic
    发表于 03-27 06:12

    STM32L431RCT6从用户代码区跳转使用内置system memory bootloader无效怎么解决?

    STM32L431RCT6 从用户代码区跳转使用内置system memory bootloader 无效。 1. 跳转代码如下,这个代码 可以在STM32F407VET6上正常跳转 内置
    发表于 03-26 07:54

    stm32delay函数怎么写

    STM32的延时函数可以使用SysTick定时器来实现。SysTick定时器是一个24位的计数器,它可以在每个时钟周期自动减少计数值,直到计数值为0时触发中断。我们可以利用SysTick
    的头像 发表于 12-21 17:53 692次阅读

    CKS32F4xx系列MCU SysTick定时器的原理及使用方法

    、中断延时以及测量函数运行时间;在实时操作系统RTOS中作为滴答定时器,用于上下文切换。采用Cortex-M内核的微处理都有SysTick定时器,方便不同处理器之间的软件移植。SysTick
    的头像 发表于 12-18 09:21 514次阅读
    CKS32F4xx系列MCU <b class='flag-5'>SysTick</b>定时器的原理及使用方法

    FreeRTOS中Systick的问题

    在Cortex-M内核中,系统节拍由Systick时钟提供,当配置好系统滴答时钟后,每次时钟中断就会触发中断处理数xPortSysTickHandler
    的头像 发表于 12-15 08:00 234次阅读
    FreeRTOS中<b class='flag-5'>Systick</b>的问题

    滴答定时器在单片机中的作用?

    使用lpc54110的时候,将滴答定时器中断注释掉之后单片机就直接不工作了(就是这个函数SysTick_Handler)
    发表于 11-09 08:30

    STM32SysTick时钟源来自哪里?

    STM32SysTick时钟源来自哪里?
    的头像 发表于 10-26 15:58 908次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SysTick</b>时钟源来自哪里?

    GD32VF103有系统滴答定时器吗?

    GD32VF103有系统SysTick滴答定时器吗???有它的定时器中断吗????我没找到,希望有大神帮忙一下,万分感谢!
    发表于 08-15 06:00

    STM32 SysTick配置函数

    之前使用SysTick滴答定时器都是通过查找内核编程手册配置寄存器让SysTick滴答定时器工作的。
    的头像 发表于 07-22 10:21 1112次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>配置函数

    STM32 SysTick中断使用方法

    SysTick中断属于核内外设中断器,中断号为-1。
    的头像 发表于 07-22 10:18 1979次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>中断使用方法

    浅析STM32 Systick查询定时的处理过程

    STM32处理器有一个24位的系统滴答定时器SysTick,它从重新加载值开始倒数到0,然后在下一个时钟边缘重新加载(包装到)STK_LOAD寄存器中的值,然后在随后的时钟上倒数。
    的头像 发表于 07-21 17:47 1151次阅读
    浅析<b class='flag-5'>STM32</b> <b class='flag-5'>Systick</b>查询定时的处理过程

    STM32F407 滴答定时器

    介绍STM32F407滴答定时器配置方法、使用方式,封装延时函数得到精确的时间。
    的头像 发表于 07-06 14:32 1210次阅读
    <b class='flag-5'>STM32</b>F407 <b class='flag-5'>滴答</b>定时器

    一个有关SYSTICK好奇的问题

    位置1,如果此时SYSTICK滴答中断请求使能了的话,可以对CPU发起中断请求。 根据我们平常STM32的开发经验,通常各种外设事件发起中断请求时,往往有相应的事件标志跟中断响应关联,在中断服务程序里并将相关事件标志做清零操作
    的头像 发表于 06-21 15:48 426次阅读

    什么是系统滴答?RTOS滴答设置多少才合理?

    系统滴答SysTick),有些地方也叫时钟节拍、系统心跳等。
    发表于 06-15 09:15 776次阅读
    什么是<b class='flag-5'>系统</b><b class='flag-5'>滴答</b>?RTOS<b class='flag-5'>滴答</b>设置多少才合理?

    STM32 SysTick定时器讲解

    本文将介绍SysTick定时器、其工作原理与寄存器、及对应的应用实例
    的头像 发表于 04-21 11:31 1174次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>定时器讲解