电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>单片机>STM32入门系列教程之Systick的编程资料说明

STM32入门系列教程之Systick的编程资料说明

2020-07-17 | rar | 0.34 MB | 次下载 | 免费

资料介绍

  提到systick 不得不抱怨以下STM32 的用户手册,既然提供了systick 的功能,为啥手册里却只提了一下?后来笔者上网搜的时候,才发现,抱怨的不仅仅是我一个人。闲话不说,下面将笔者搜集的资料进行总结。

  1. systick介绍

  Systick 就是一个定时器而已,只是它放在了NVIC 中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。没有学过操作系统的同学,可能会很郁闷,啥叫滴答中断?这里来简单地解释一下。操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个系统不放。这个心跳,可以通过定时器来周期性触发,而这个定时器就是systick。很明显,这个“心跳”是不允许任何人来随意地访问和修改的。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。知道systick 在系统中的地位后,我们来了解systick 的实现。注意,本期教程并没有讲述systick 如何在操作系统中的运行,因为这对初学者来说比较复杂。我们这里只是举例说明systick 的使用。它有四个寄存器,笔者把它列出来:

  STK_CSR, 0xE000E010 -- 控制寄存器

  STK_LOAD, 0xE000E014 -- 重载寄存器

  STK_VAL, 0xE000E018 -- 当前值寄存器

  STK_CALRB, 0xE000E01C -- 校准值寄存器

  现在我们想通过Systick 定时器做一个精确的延迟函数,比如让LED 精确延迟1 秒钟闪亮一次。

  思路:利用systick 定时器为递减计数器,设定初值并使能它后,它会每个系统时钟周期计数器减1,计数到0 时,SysTick 计数器自动重装初值并继续计数,同时触发中断。

  那么每次计数器减到0,时间经过了:系统时钟周期* 计数器初值。我们使用72M 作为系统时钟,那么每次计数器减1 所用的时间是1/72M,计数器的初值如果是72000,那么每次计数器减到0,时间经过(1/72M) * 72000 =0.001,即1ms。

  现在我们做出来的Delay(1),就是1 毫秒延迟。Delay(1000)就是1 秒。有了以上的思路后,systick 的编程非常简单。首先,我们需要有一个72M 的systick 系统时钟,那么,使用下面这个时钟就OK!SystemInit();

  这个函数可以让主频运行到72M。可以把它作为systick 的时钟源。为了配合演示,可以使用LED 显示来做,于是我们设置了GPIO_Config();初始化函数,初始化了芯达STM32 开发板上的LED4 灯。

  接着开始配置systick,实际上配置systick 的严格过程如下:使用ST 的函数库使用systick 的方法:

  1、调用SysTick_CounterCmd() -- 失能SysTick 计数器

  2、调用SysTick_ITConfig () -- 失能SysTick 中断

  3、调用SysTick_CLKSourceConfig() -- 设置SysTick 时钟源。

  4、调用SysTick_SetReload() -- 设置SysTick 重装载值。

  5、调用SysTick_ITConfig () -- 使能SysTick 中断

  6、调用SysTick_CounterCmd() -- 开启SysTick 计数器

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1TC358743XBG评估板参考手册
  2. 1.36 MB  |  330次下载  |  免费
  3. 2开关电源基础知识
  4. 5.73 MB  |  6次下载  |  免费
  5. 3100W短波放大电路图
  6. 0.05 MB  |  4次下载  |  3 积分
  7. 4嵌入式linux-聊天程序设计
  8. 0.60 MB  |  3次下载  |  免费
  9. 5基于FPGA的光纤通信系统的设计与实现
  10. 0.61 MB  |  2次下载  |  免费
  11. 651单片机窗帘控制器仿真程序
  12. 1.93 MB  |  2次下载  |  免费
  13. 751单片机大棚环境控制器仿真程序
  14. 1.10 MB  |  2次下载  |  免费
  15. 8基于51单片机的RGB调色灯程序仿真
  16. 0.86 MB  |  2次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33564次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6653次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537796次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191185次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费