打印
[应用相关]

STM32学习笔记之Systick

[复制链接]
279|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
peripheral|  楼主 | 2020-2-7 15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Systick实验中,Systick用来定时。来看看程序中什么地方出现过Systick相关的语句。
main.c:
/* SysTick end of count event each 1ms with input clock equal to 9MHz (HCLK/8, default) */ 
  SysTick_SetReload(9000);

  /* Enable SysTick interrupt */
  SysTick_ITConfig(ENABLE);

  /*******************************************************************************
* Function Name  : Delay
* Description    : Inserts a delay time.
* Input          : nTime: specifies the delay time length, in milliseconds.
* Output         : None
* Return         : None
*******************************************************************************/
void Delay(u32 nTime)
{
  /* Enable the SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Enable);
  TimingDelay = nTime;

  while(TimingDelay != 0);

  /* Disable SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Disable);
  /* Clear SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Clear);
}

/*******************************************************************************
* Function Name  : TimingDelay_Decrement
* Description    : Decrements the TimingDelay variable.
* Input          : None
* Output         : TimingDelay
* Return         : None
*******************************************************************************/
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  {
    TimingDelay--;
  }
}

stm32f10x_it.c:
void SysTickHandler(void)
{
TimingDelay_Decrement();
}


使用特权

评论回复
沙发
peripheral|  楼主 | 2020-2-7 15:55 | 只看该作者
Systick的应用:
初始化时:
首先我们要确定Systick的时钟源,再确定重装载值,如果用中断方式,
这里可以打开Systick中断始能。

定时运行时:
使能Systick时钟,判断systick定时到0,到0以后,失能Systick时钟,再清0重载寄存器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

438

帖子

2

粉丝