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

STM32庫函數(shù)滴答定時(shí)器

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月17日   【字體:
程序:
#include "stm32f10x.h"
static __IO uint32_t TimingDelay;
void RCC_Configuration(void);
void Delay(__IO uint32_t nTime);
/****************************************************************************
* 名    稱:void LED_Config(void)
* 功    能:LED 控制初始化函數(shù)
* 入口參數(shù):無
* 出口參數(shù):無
* 說    明:
* 調(diào)用方法:無 
****************************************************************************/ 
void LED_Config(void){
  GPIO_InitTypeDef GPIO_InitStructure;  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;     //LED1  V6  配置為通用推挽輸出  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //口線翻轉(zhuǎn)速度為50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;      //LCD背光控制
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  GPIO_ResetBits(GPIOD, GPIO_Pin_13);                  //LCD背光關(guān)閉
}
/****************************************************************************
* 名    稱:int main(void)
* 功    能:主函數(shù)
* 入口參數(shù):無
* 出口參數(shù):無
* 說    明:
* 調(diào)用方法:無 
****************************************************************************/ 
int main(void)
{
   RCC_Configuration();           //系統(tǒng)時(shí)鐘設(shè)置及各外設(shè)時(shí)鐘使能
   LED_Config();                   //LED控制初始化  
   if (SysTick_Config(72000))    //時(shí)鐘節(jié)拍中斷時(shí)1ms一次  用于定時(shí) core_cm3.h
   { 
    /* Capture error */ 
     while (1);
   }
   while (1)
   {
      GPIO_SetBits(GPIOB, GPIO_Pin_5); //LED1 亮 
      Delay(500); //延時(shí)500ms
      GPIO_ResetBits(GPIOB, GPIO_Pin_5); //LED1 滅 
      Delay(500); //延時(shí)500ms
   }
}
 
/****************************************************************************
* 名    稱:void RCC_Configuration(void)
* 功    能:系統(tǒng)時(shí)鐘配置為72MHZ, 外設(shè)時(shí)鐘配置
* 入口參數(shù):無
* 出口參數(shù):無
* 說    明:
* 調(diào)用方法:無 
****************************************************************************/ 
void RCC_Configuration(void){
 
  SystemInit();   
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC 
  | RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE , ENABLE);
}
/****************************************************************************
* 名    稱:void Delay(__IO uint32_t nTime)
* 功    能:定時(shí)延時(shí)程序 1ms為單位
* 入口參數(shù):無
* 出口參數(shù):無
* 說    明:
* 調(diào)用方法:無 
****************************************************************************/  
void Delay(__IO uint32_t nTime)
  TimingDelay = nTime;
 
  while(TimingDelay != 0);
}
/****************************************************************************
* 名    稱:void TimingDelay_Decrement(void)
* 功    能:獲取節(jié)拍程序
* 入口參數(shù):無
* 出口參數(shù):無
* 說    明:
* 調(diào)用方法:無 
****************************************************************************/  
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  { 
    TimingDelay--;
  }
}
關(guān)閉窗口