i STM32用SysTick来做定时器-嵌入式MCU技术-电子人社区 -

电子人社区

 找回密码
 立即注册
今日 : 0|主题 : 4177|排名 : 314 
打印 上一主题 下一主题

STM32用SysTick来做定时器

发表于 2019-1-10 21:28:33 | 73640 只看该作者 回帖奖励 |倒序浏览 |阅读模式

[复制链接]
发表于 2019-1-10 21:28:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电子人社区网讯:   1 硬件电路配置
  本文引用地址: http://www.21ic.com/app/mcu/201812/780778.htm
  这里还是借用前面LED电路我就不贴图片。
  2 时钟说明
  SysTick和HCK的时钟频率是一样的库函数代码如下
  /**
  *@briefInitializeandstarttheSysTickcounteranditsinterrupt.
  *
  *@paramticksnumberofticksbetweentwointerrupts
  *@return1=failed,0=successful
  *
  *Initialisethesystemticktimeranditsinterruptandstartthe
  *systemticktimer/counterinfreerunningmodetogenerate
  *periodicalinterrupts.
  */
  static__INLINEuint32_tSysTick_Config(uint32_tticks)
  {
  if(ticks>SysTick_LOAD_RELOAD_Msk)return(1);/*Reloadvalueimpossible*/
  SysTick->LOAD=(ticks&SysTick_LOAD_RELOAD_Msk)-1;/*setreloadregister*/
  NVIC_SetPriority(SysTick_IRQn,(1
  SysTick->VAL=0;/*LoadtheSysTickCounterValue*/
  SysTick->CTRL=SysTick_CTRL_CLKSOURCE_Msk|
  SysTick_CTRL_TICKINT_Msk|
  SysTick_CTRL_ENABLE_Msk;/*EnableSysTickIRQandSysTickTimer*/
  return(0);/*Functionsuccessful*/
  }
  由库函数可知道没有进行分频动作所以时钟和主时钟一样
  配置时钟中断的时间间隔
voidSysTick_Init(void)  {
  /*SystemFrequency/10001ms中断一次
  *SystemFrequency/10000010us中断一次
  *SystemFrequency/10000001us中断一次
  */
  //if(SysTick_Config(SystemFrequency/100000))//ST3.0.0库版本
  if(SysTick_Config(SystemCoreClock/1000))//ST3.5.0库版本
  {
  /*Captureerror*/
  while(1);
  }
  //我需要不断的开启中断所以这句话屏蔽起来
  //SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
  }
  用中断模式所以需要在中断文件中做定时标志。一下这个函数在中断文件中
/**  *@briefThisfunctionhandlesSysTickHandler.
  *@paramNone
  *@retval:None
  */
  voidSysTick_Handler(void)
  {
  TimingDelay_Decrement();
  }
  中断函数在调用一个计数函数,计数函数应该放在外面一个公共文件中方便各个文件中数据传递。
  /*
  *函数名:TimingDelay_Decrement
  *描述获取节拍程序
  *输入无
  *输出无
  *调用在SysTick中断函数SysTick_Handler()调用
  */
  voidTimingDelay_Decrement(void)
  {
  if(TimingDelay!=0x00)
  {
  TimingDelay--;
  }
  }

  • STM32单片机中文官网
  • STM32单片机官方开发工具
  • STM32单片机参考设计
            
来源:网络转载

 

                                                   转载请注明:电子人社区

0条回复
跳转到指定楼层

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|电子人物联网  

Copyright 2013 最新最精彩-社区论坛 版权所有 All Rights Reserved.

QQ|电子人物联网  

GMT+8, 2024-5-2 07:02 , Processed in 0.096949 second(s), 31 queries.

快速回复 返回顶部 返回列表