[N32L4xx] 延时函数

[复制链接]
1242|7
 楼主| qeeuly 发表于 2023-1-31 15:16 | 显示全部楼层 |阅读模式
请问有没有延时函数?
自己写一个也可以,就是不如库自带的方便。
blust5 发表于 2023-1-31 16:09 | 显示全部楼层
写个for循环不就行了
WK520077778 发表于 2023-2-1 00:11 | 显示全部楼层
比较多的选择,看具体场景
jobszheng 发表于 2023-2-1 09:06 | 显示全部楼层
还是看具体的应用场景吧!
优选设计成状态机的模式,把延迟部分更新为一个延时状态
CXFLBH 发表于 2023-2-1 09:09 | 显示全部楼层
//延时程序,由delay参数确定延时时间
void Delay(unsigned int delay)
{                               
   unsigned char k;
   for(;delay>0;delay--)
   for(k=0;k<255;k++);
}
quna 发表于 2023-2-1 15:31 | 显示全部楼层
void systick_delay_us(u32 nus)
{      
    u32 temp;      
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);    //select system clock   
    SysTick->LOAD=nus*(SystemCoreClock/1000000); //time relode           
    SysTick->VAL=0x00;        //clear timer value
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;  //Start countdown  
    do
    {
        temp=SysTick->CTRL;
    }
    while(temp&0x01&&!(temp&(1<<16)));//wait for the time reach
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //close the count
    SysTick->VAL =0X00;       //clear timer value   
}

/**
* @brief  us delay  program function.
* @param nus: the setting us value.
*   note: The system clock should be an integer multiple of 1M .
*   It is ensure accuracy .
*/
void systick_delay_ms(u16 nms)
{                 
    u32 temp;
  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);  //select system clock   
    SysTick->LOAD=(u32)nms*((SystemCoreClock/1000000)*1000);//time relode(SysTick->LOAD is 24bit)
    SysTick->VAL =0x00;           //clear timer value
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;          //Start countdown  
    do
    {
        temp=SysTick->CTRL;
    }
    while(temp&0x01&&!(temp&(1<<16)));//wait for the time reach   
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //close the count
    SysTick->VAL =0X00;       //clear timer value               
}
 楼主| qeeuly 发表于 2023-2-1 16:18 | 显示全部楼层
quna 发表于 2023-2-1 15:31
void systick_delay_us(u32 nus)
{      
    u32 temp;      

谢谢。
再问下,如果在主循环的函数里调用这两个延时,就是操作SysTick,不会影响定时中断吧?

评论

不会  发表于 2023-2-2 11:49
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部