專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

STM32庫函數滴答定時器

作者:佚名   來源:本站原創   點擊數:  更新時間: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 控制初始化函數
* 入口參數:無
* 出口參數:無
* 說    明:
* 調用方法:無 
****************************************************************************/ 
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; //口線翻轉速度為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背光關閉
}
/****************************************************************************
* 名    稱:int main(void)
* 功    能:主函數
* 入口參數:無
* 出口參數:無
* 說    明:
* 調用方法:無 
****************************************************************************/ 
int main(void)
{
   RCC_Configuration();           //系統時鐘設置及各外設時鐘使能
   LED_Config();                   //LED控制初始化  
   if (SysTick_Config(72000))    //時鐘節拍中斷時1ms一次  用于定時 core_cm3.h
   { 
    /* Capture error */ 
     while (1);
   }
   while (1)
   {
      GPIO_SetBits(GPIOB, GPIO_Pin_5); //LED1 亮 
      Delay(500); //延時500ms
      GPIO_ResetBits(GPIOB, GPIO_Pin_5); //LED1 滅 
      Delay(500); //延時500ms
   }
}
 
/****************************************************************************
* 名    稱:void RCC_Configuration(void)
* 功    能:系統時鐘配置為72MHZ, 外設時鐘配置
* 入口參數:無
* 出口參數:無
* 說    明:
* 調用方法:無 
****************************************************************************/ 
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)
* 功    能:定時延時程序 1ms為單位
* 入口參數:無
* 出口參數:無
* 說    明:
* 調用方法:無 
****************************************************************************/  
void Delay(__IO uint32_t nTime)
  TimingDelay = nTime;
 
  while(TimingDelay != 0);
}
/****************************************************************************
* 名    稱:void TimingDelay_Decrement(void)
* 功    能:獲取節拍程序
* 入口參數:無
* 出口參數:無
* 說    明:
* 調用方法:無 
****************************************************************************/  
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  { 
    TimingDelay--;
  }
}
關閉窗口
街机奔驰宝马电玩城 江苏11选5走势图手机版 大乐透6元机选中奖故事 吉林快3开奖快结果 365盈配资 福建11选5基本走势图近100期 七星彩最新开奖结果 兰州股票配资公司 湖北11选5前三走势图 有人玩分分彩赚钱了吗 广西快乐双彩开奖 广东11选5助手 急速赛车开奖数据 买股票最低买多少股 福彩30选5开奖结果 加拿大28倍率最高的app 专业股票分析软件哪个比较好