国产亚洲精品AA片在线观看,丰满熟妇HD,亚洲成色www成人网站妖精,丁香五月天婷婷五月天男人天堂

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32 延時函數封裝

STM32 延時函數封裝

作者: 時間:2012-09-10 來源:網絡 收藏

/*---------------------------------

本文引用地址:http://www.ljygm.com/article/148436.htm

模塊

說明:只需在工程中加入delay.c和delay.h

文件,即可用 Delayms(__IO uint32_t nTime);

Delayus(__IO uint32_t nTime)

-----------------------------------*/

#ifndef __DELAY_H

#define __DELAY_H

#include stm32f10x.h

/*---------------------------------

描 述:參數1即為1ms,1000即為1s;只有幾

us的誤差;

-----------------------------------*/

extern void Delayms(__IO uint32_t nTime);

/*---------------------------------

描 述:參數1即為1us,1000即為1ms;只有幾

us的誤差;

-----------------------------------*/

extern void Delayus(__IO uint32_t nTime);

/*---------------------------------

名:調整形式的delaynus,

描 述:參數1即為1us,1000即為1ms;

-----------------------------------*/

extern void delay_nus(unsigned long n);

/*---------------------------------

函數名:調整形式的delaynms函數,

描 述:參數1即為1ms,1000即為1s;

-----------------------------------*/

extern void delay_nms(unsigned long n);

#endif

C 函數

/*---------------------------------

延時模塊函數

說明:只需在工程中加入delay.c和delay.h

文件,即可用 Delayms(__IO uint32_t nTime);

Delayus(__IO uint32_t nTime)

-----------------------------------*/

#includedelay.h

static __IO uint32_t TimingDelay;

/* Private function prototypes -----------------------------------------------*/

/*---------------------------------

函數名:ms延時函數

描 述:參數1即為1ms,1000即為1s;只有幾

us的誤差;

-----------------------------------*/

void Delayms(__IO uint32_t nTime)

{

while(SysTick_Config(SystemCoreClock/1000));

TimingDelay = nTime;

while(TimingDelay != 0);

SysTick->CTRL=0x00; //關閉計數器

SysTick->VAL =0X00; //清空計數器

}

/*---------------------------------

函數名:us延時函數

描 述:參數1即為1us,1000即為1ms;只有幾

us的誤差;

-----------------------------------*/

void Delayus(__IO uint32_t nTime)

{

while(SysTick_Config(SystemCoreClock/1000000));

TimingDelay = nTime;

while(TimingDelay != 0);

SysTick->CTRL=0x00; //關閉計數器

SysTick->VAL =0X00; //清空計數器

}

/*---------------------------------

函數名:延時輔助函數

描 述:

-----------------------------------*/

void TimingDelay_Decrement(void)

{

if (TimingDelay != 0x00)

{

TimingDelay--;

}

}

/*---------------------------------

函數名:systick的中斷函數

描 述:參數1即為1us,1000即為1ms;只有幾

us的誤差;

-----------------------------------*/

void SysTick_Handler(void)

{

TimingDelay_Decrement();

}

/*---------------------------------

函數名:延時調整形式的delaynus函數,

描 述:參數1即為1us,1000即為1ms;

-----------------------------------*/

void delay_nus(unsigned long n)

{

unsigned long j;

while(n--)

{

j=12;

while(j--);

}

}

/*---------------------------------

函數名:延時調整形式的delaynms函數,

描 述:參數1即為1ms,1000即為1s;

-----------------------------------*/

void delay_nms(unsigned long n)

{

while(n--)

delay_nus(1030);

}



關鍵詞: 封裝 函數 延時 STM32

評論


相關推薦

技術專區(qū)

關閉