control + alt + space文章来源地址https://www.toymoban.com/news/detail-405740.html
#ifndef __MYDelay__
#define __MYDelay__
#include "stm32f10x.h"
void MYDelay_Init(void);
void DelayUs(uint32_t t);
void DelayMs(uint16_t t);
void DelayS(uint16_t t);
//void delaymms(uint32_t t);
#endif
#include "stm32f10x.h" // Device header
#include "MYDelay.h"
static u8 fac_us=0; //9
static u16 fac_ms=0;//9000
void MYDelay_Init(void) {
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //f=9M
fac_us=SystemCoreClock/8000000;
fac_ms=(u16)fac_us*1000;
}
void DelayUs(uint32_t t) {
u32 tmp;
SysTick->LOAD=t*fac_us; //倒计时
SysTick->VAL=0x00; //清空当前的
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //始能
do {
tmp=SysTick->CTRL;
} while((tmp&0x01)&&!(tmp&(1<<16)));
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
SysTick->VAL=0x00;
}
void DelayMs(uint16_t t) {
u32 tmp;
SysTick->LOAD=t*fac_ms; //倒计时
SysTick->VAL=0x00; //清空当前的
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //始能
do {
tmp=SysTick->CTRL;
} while((tmp&0x01)&&!(tmp&(1<<16)));
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
SysTick->VAL=0x00;
}
void DelayS(uint16_t t) {
for(int i=0;i<1000;i++) DelayMs(t);
}
//void delaymms(uint32_t t) {
// t=t*8000;
// for(; t>0; t--) ;
//}
文章来源:https://www.toymoban.com/news/detail-405740.html
到了这里,关于STM32 显示代码提示 以及延时函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!