SysTick实现监控开机时长

systick系统定时器,又叫滴答定时器。在我看来比TIM使用起来要简单。
在实现监控开机时长的例子中:配置定时器以相同的时间间隔进入中断,在中断不断累加计数变量,然后利用计数变量和时间间隔计算出相应的时长。
首先是对SysTick的配置,主要配置其进入中断的时长,一般来说SysTick使用的AHB时钟,计数计数器加一的时间为1/72000000s.在SysTick_Config()函数中参数为进入中断的计数。配置好后,计数器中的数值即为配置的数,每一个时钟周期计数器中的数减一,当计数器中的数为0时触发中断,进入中断服务函数。

void SysTick_Init(void)
{if(SysTick_Config(SystemCoreClock/1000)){while(1);}SysTick->CTRL &=~SysTick_CTRL_ENABLE_Msk;
}

SystemCoreclock的值为系统时钟的值72MHz。对于配置函数SysTick_Config(),配置成功返回0,配置失败返回1.
SysTick->CTRL表示SysTick的使能位。
在这里SysTick_Config()函数的参数为SystemCoreclock/1000,经过计算可以知道进入中断一次的时间为1ms。
t = (1/72000000) * (SystemCoreclock/1000)
设置变量在中断中统计进入中断的次数,从而得到时间。

void SysTick_Handler(void)
{Delay_Times++;count_1s++;if(count_1s == 1000){flag = 1;count_1s = 0;}else{flag = 0;}
}

变量Delay_Times用来统计进入中断的次数,变量count_1s和flag控制串口每隔1秒钟向上位机打印一次。
主函数:

int main(void){SysTick_Init();GPIO_Config();USART_Config();SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;//使能SysTickflag = 0;while(1){if(flag){secs = Delay_Times/1000;mins = secs/60;hours = mins/60;secs = secs - mins*60;mins = mins - hours*60;printf("the time is:%d:%d:%d\r\n",hours,mins,secs);}else{}}
}

STM32----SysTick实现监控开机时长相关推荐

  1. win10查看电脑开机时长

    查看电脑开机时间: 以管理员身份运行Windows PowerShell运行以下命令:(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime可 ...

  2. 计算机开机时10声响,电脑开机时听到滴滴滴3短声是什么问题

    电脑开机时听到滴滴滴3短声是什么问题以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑开机时听到滴滴滴3短声是什么问题 ...

  3. 电脑cpu风扇转一下就停无法开机_电脑开机时cpu风扇转一下就停了,修改cpu核数时无法开机-...

    在有些时候我们的电脑开机时cpu不转,这该怎么办呢?下面就由学习啦小编来为你们简单的介绍电脑开机时cpu不转的原因及解决方法吧!希望你们喜欢!电脑开机时cpu不转的原因及解决:1.电源供电有问题或是主 ...

  4. 解决计算机开机时Cannot load resource dll:REPLRES.RLL问题

    解决计算机开机时"Cannot load resource dll:REPLRES.RLL"问题 最近受计算机影响较大,每当计算机开机时,都会弹出 "Cannot loa ...

  5. 成功解决windows开机时,系统提示此windows副本不是正版

    成功解决windows开机时,系统提示此windows副本不是正版 目录 解决问题 解决思路 解决方法 解决问题 解决思路 系统装机时采用的非正win系统的时候,用过一段时间后就会出现这样的警告! 解 ...

  6. 计算机开机的四个画面,教你修改电脑开机时“欢迎使用”四个字!

    教你修改电脑开机时"欢迎使用"四个字! 作者:佚名 来源:绿茶软件园 2011-06-30 10:16:31 一.这几个字保存在"Windowssystem32Logon ...

  7. STM32的推挽输出和开漏输出

    文章目录 前言 一.推挽输出 二.开漏输出 三.区别和适应场景 总结 前言 本篇文章将带大家了解STM32的推挽输出和开漏输出,并且学习这两个的区别,学习分别在什么时候使用这两个不同的输出方式. 在 ...

  8. 记录佩戴耳机时长App开发

    移动辅助类App编程项目 文章目录 移动辅助类App编程项目 软件说明 实现功能 源代码 `layout_main.xml`静态界面布局文件 `MainActivity`主界面 `RecordTime ...

  9. 计算机启动时bios主要完成的功能,电脑开机时bios的作用(急用)

    ▲BIOS是什么? BIOS全名为(Basic Input Output System)即基本输入/输出系统,是电脑中最基础的而又最重要的程序.我们把这一段程序存放在一个不需要电源的记忆体(芯片)中, ...

最新文章

  1. ecshop中ajax的调用原理
  2. TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)
  3. Require.js
  4. Spark SQL 最简单例子
  5. Python3 正则表达式特殊符号及用法(详细列表)
  6. 模拟银行自助终端系统
  7. 学练结合,快速掌握Kubernetes Service
  8. jdbc读取mysql时分秒yyyy-mm-dd hh:_[转]JDBC中日期时间的处理技巧
  9. linux安全加固_安全服务之安全评估与加固
  10. 多线程的那点儿事(之自旋锁)
  11. wikioi 1430 素数判定
  12. pycharm 修改新建文件时的头部模板(默认为__author__='...')
  13. 两台ROS相互通信,并测试节点
  14. NOIP2010导弹拦截
  15. 20180626 STM32 ---利用KILE5 仿真IO口的波形图
  16. android和chrome的发展与未来[j].移动通信,基于Android手机app开发与设计 毕业设计 开题报告...
  17. 一个很好用的练习英语听力的网站
  18. 领导“驭人9术”,厚黑但实用,掌握了,不管什么下属都能摆平
  19. HTML Rendering Error(This view has crashed)处理方法
  20. Proxyee-down的下载与安装教程

热门文章

  1. 【计算机组成原理】虚拟存储器和Cache的比较
  2. 【Python】Matplotlib绘制三维散点图
  3. 【C语言】通过原子操作实现加减乘除功能Ⅰ
  4. 比特币的缺陷以及改进
  5. 以太坊Dapp项目-网页钱包开发手册
  6. 【静态页面架构】CSS之颜色与单位
  7. React学习初探(环境搭建)
  8. Laravel 学习路线【4】控制器
  9. JavaScript事件代理和委托
  10. 如何使用域组策略(AD GPO)分发软件安装以及卸载[1.31.2013更新]