- 參考
MSP432(Keil5)——3.delay延時驅(qū)動_keil5delay函數(shù)_大寫的小寫字母的博客-CSDN博客
親手測試過, 好用。用while太愚蠢,而且不好控制。文章來源:http://www.zghlxwxcb.cn/news/detail-527601.html
- 下載鏈接
https://download.csdn.net/download/quantum7/87982408文章來源地址http://www.zghlxwxcb.cn/news/detail-527601.html
- delay.h
#ifndef __DELAY_H__
#define __DELAY_H__
#include "system.h"
#define sleep_us delay_us
#define sleep_ms delay_ms
void Delay_Init(void);
void delay_us(uint32_t nus);
void delay_ms(uint16_t nms);
#endif
- delay.c
#include "delay.h"
static uint8_t g_fac_us=0;
void Delay_Init(void)
{
g_fac_us = SystemCoreClock / 1000000;
}
//延時us
void delay_us(uint32_t nus)
{
uint32_t temp;
SysTick->LOAD=(uint32_t)(nus*g_fac_us);
SysTick->VAL=0x00;
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk;
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
SysTick->VAL =0X00;
}
//延時ms
void delay_ms(uint16_t nms)
{
uint16_t i = 0;
for(i=0;i<nms;i++)
{
delay_us(1000);
}
}
到了這里,關(guān)于STM32延遲(休眠)函數(shù)delay/sleep的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!