專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

STM32 SysTick基于3.5庫(kù)函數(shù)

作者:劉蕊飛   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年03月02日   【字體:

 

#include "stm32f10x.h"
#include "led.h"
#include <stdio.h>

/***********************************************************************
***********************************************************************/
static __IO uint32_t TimingDelay;

/***********************************************************************
***********************************************************************/

void delay(__IO uint32_t nTime);
void TimingDelay_Decrement(void);

/***********************************************************************
************************************************************************/

main()
{

  if (SysTick_Config(SystemCoreClock / 100)) //10000為100mS,1000為10mS,100為1mS,進(jìn)入一次定時(shí)器中斷
  {
    /* Capture error */
    while (1);
  }

 LED_Init();

 while(1)        
 {  
  GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_SET);
  GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_RESET);
  delay(100);
  GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_RESET);
  GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_SET);
  delay(100);          
 }
}
//PA8和PD2的LED0 AND LED1 每一秒交替亮滅
/*****************************************************************************
*****************************************************************************/
/**
  * 延遲SysTick定時(shí)時(shí)間 nTime * 1mS
  */
void delay(__IO uint32_t nTime)
{
  TimingDelay = nTime;

  while(TimingDelay != 0);
}

/**
  * SysTick定時(shí)(定時(shí)器中斷函數(shù)在stm32f10x_it.c里的SysTick_Handler,且調(diào)用本程序)
  * if (SysTick_Config(SystemCoreClock / 100))設(shè)置為1mS進(jìn)入一次本程序
  */
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  {
    TimingDelay--;
  }
}

 
 

關(guān)閉窗口

相關(guān)文章