利用systick實現1s定時

滴答定時器簡介

系統定時器SysTick是屬於CM3內核中的一個外設,相關寄存器內嵌在NVIC中,所有基於CM3內核的單片機都具有這個系統定時器,這使得軟件(OS)在CM3單片機可以十分容易的移植。SysTick一般用於操作系統的產生時基功能,以維持操作系統的“心跳”。

問題描述:利用stm32自帶的滴答定時器,也就是systick定時器,實現1s鍾定時,滴答定時器10ms中斷一次

 

問題分析:滴答定時器定時10ms,定時10ms後讓一個變量自增。當這個變量增加了100次後,不就是1s了嘛。

 

編程:滴答定時器定時10ms

根據滴答定時器的寄存器,設置時鐘源和重裝載數即可

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;	
  }
}

 

發佈了35 篇原創文章 · 獲贊 6 · 訪問量 2648
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章