日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]STM32 延時(shí)函數(shù)封裝

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

延時(shí)模塊函數(shù)

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

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

Delayus(__IO uint32_t nTime)

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

#ifndef __DELAY_H

#define __DELAY_H

#include "stm32f10x.h"

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

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

us的誤差;

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

extern void Delayms(__IO uint32_t nTime);

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

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

us的誤差;

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

extern void Delayus(__IO uint32_t nTime);

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

函數(shù)名:延時(shí)調(diào)整形式的delaynus函數(shù),

描 述:參數(shù)1即為1us,1000即為1ms;

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

extern void delay_nus(unsigned long n);

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

函數(shù)名:延時(shí)調(diào)整形式的delaynms函數(shù),

描 述:參數(shù)1即為1ms,1000即為1s;

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

extern void delay_nms(unsigned long n);

#endif

C 函數(shù)

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

延時(shí)模塊函數(shù)

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

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

Delayus(__IO uint32_t nTime)

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

#include"delay.h"

static __IO uint32_t TimingDelay;

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

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

函數(shù)名:ms延時(shí)函數(shù)

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

us的誤差;

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

void Delayms(__IO uint32_t nTime)

{

while(SysTick_Config(SystemCoreClock/1000));

TimingDelay = nTime;

while(TimingDelay != 0);

SysTick->CTRL=0x00; //關(guān)閉計(jì)數(shù)器

SysTick->VAL =0X00; //清空計(jì)數(shù)器

}

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

函數(shù)名:us延時(shí)函數(shù)

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

us的誤差;

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

void Delayus(__IO uint32_t nTime)

{

while(SysTick_Config(SystemCoreClock/1000000));

TimingDelay = nTime;

while(TimingDelay != 0);

SysTick->CTRL=0x00; //關(guān)閉計(jì)數(shù)器

SysTick->VAL =0X00; //清空計(jì)數(shù)器

}

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

函數(shù)名:延時(shí)輔助函數(shù)

描 述:

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

void TimingDelay_Decrement(void)

{

if (TimingDelay != 0x00)

{

TimingDelay--;

}

}

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

函數(shù)名:systick的中斷函數(shù)

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

us的誤差;

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

void SysTick_Handler(void)

{

TimingDelay_Decrement();

}

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

函數(shù)名:延時(shí)調(diào)整形式的delaynus函數(shù),

描 述:參數(shù)1即為1us,1000即為1ms;

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

void delay_nus(unsigned long n)

{

unsigned long j;

while(n--)

{

j=12;

while(j--);

}

}

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

函數(shù)名:延時(shí)調(diào)整形式的delaynms函數(shù),

描 述:參數(shù)1即為1ms,1000即為1s;

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

void delay_nms(unsigned long n)

{

while(n--)

delay_nus(1030);

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉