利用systick实现1s定时

滴答定时器简介

系统定时器SysTick是属于CM3内核中的一个外设,相关寄存器内嵌在NVIC中,所有基于CM3内核的单片机都具有这个系统定时器,这使得软件(OS)在CM3单片机可以十分容易的移植。SysTick一般用于操作系统的产生时基功能,以维持操作系统的“心跳”。

问题描述:利用stm32自带的滴答定时器,也就是systick定时器,实现1s钟定时,滴答定时器10ms中断一次

 

问题分析:滴答定时器定时10ms,定时10ms后让一个变量自增。当这个变量增加了100次后,不就是1s了嘛。

 

编程:滴答定时器定时10ms

根据滴答定时器的寄存器,设置时钟源和重装载数即可

利用systick实现1s定时_第1张图片

利用systick实现1s定时_第2张图片

void  SysTickInit (void)
{
  SysTick_SetReload(90000);
  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
  SysTick_CounterCmd(SysTick_Counter_Enable);
  SysTick_ITConfig(ENABLE);
}

中断处理

void SysTickHandler(void)
{
   SysClock++;
}

编程:定时1s,串口发送aa

void systick_send(void)
{
  static int clockDelay;

  if (SysClock-clockDelay>100)
  {
	   HostPutChar(0xaa);
	   clockDelay=SysClock;	
  }
}

 

你可能感兴趣的:(随手笔记)