延时Delay

技术文章 2个月前 完美者
1,559 0

标签:lock   base   div   val   systick   system   sig   tick   config   

unsigned int Base_us;
unsigned int Base_ms;

void DELAY_Init(void)
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
    
    Base_us = SystemCoreClock/8000000;
    Base_ms = Base_us*1000;
}

void DELAY_us(unsigned int n)
{
    unsigned int Temp;
    
    SysTick->LOAD = n*Base_us;
    SysTick->VAL  = 0x00;
    SysTick->CTRL|= SysTick_CTRL_ENABLE_Msk;
    
    do
    {
        Temp = SysTick->CTRL;
    }while((Temp&0x01)&&!(Temp&(1<<16)));
    
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
    SysTick->VAL   = 0x00;
}

void DELAY_ms(unsigned int n)
{
    unsigned int Temp;
    
    SysTick->LOAD = n*Base_ms;
    SysTick->VAL  = 0x00;
    SysTick->CTRL|= SysTick_CTRL_ENABLE_Msk;
    
    do
    {
        Temp = SysTick->CTRL;
    }while((Temp&0x01)&&!(Temp&(1<<16)));
    
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
    SysTick->VAL   = 0x00;
}

延时Delay

标签:lock   base   div   val   systick   system   sig   tick   config   

原文地址:https://www.cnblogs.com/PolarBearINBrown/p/13939220.html

版权声明:完美者 发表于 2020-11-07 16:50:12。
转载请注明:延时Delay | 完美导航

暂无评论

暂无评论...