[STM32F3] SysTick滴答定时器(delay延时函数讲解)

[复制链接]
2937|52
 楼主| 大鹏2365 发表于 2022-5-31 15:24 | 显示全部楼层
delay_us()
最后,delay_us(),此函数用来延时指定的us。具体的逻辑和上面一个函数类似,就不介绍了。
 楼主| 大鹏2365 发表于 2022-5-31 15:25 | 显示全部楼层
  1. void delay_us(u32 nus)
  2. {               
  3.         u32 temp;                     
  4.         SysTick->LOAD=nus*fac_us;                                 //时间加载                           
  5.         SysTick->VAL=0x00;        //清空计数器
  6.         SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;          //开始倒数          
  7.         do
  8.         {
  9.                 temp=SysTick->CTRL;
  10.         }while((temp&0x01)&&!(temp&(1<<16)));        //等待时间到达   
  11.         SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //关闭计数器
  12.         SysTick->VAL =0X00;       //清空计数器         
  13. }
 楼主| 大鹏2365 发表于 2022-5-31 15:25 | 显示全部楼层
delay延时的相关函数在SYSTEM文件夹下的delay子文件夹,在使用delay_ms()或者delay_us()函数之前一定不要忘记先初始化delay_init()。
天灵灵地灵灵 发表于 2022-7-25 15:49 | 显示全部楼层
讲的真详细
天灵灵地灵灵 发表于 2022-7-25 16:11 | 显示全部楼层
解释的好详细
Uriah 发表于 2022-10-3 08:07 | 显示全部楼层

在实际的项目应用当中,单片机引脚的复用相当厉害
mollylawrence 发表于 2022-10-10 17:38 | 显示全部楼层
Delay()函数延时的时间是怎么计算的?
kkzz 发表于 2022-10-10 17:53 | 显示全部楼层
滴答定时器怎么使能      
10299823 发表于 2022-10-10 20:29 | 显示全部楼层
STM32怎么用库函数使用滴答定时器?
maudlu 发表于 2022-10-10 21:10 | 显示全部楼层
systick具体延时时间怎么计算的?
bartonalfred 发表于 2022-10-10 21:48 | 显示全部楼层
用Delay进行延时,会对定时器中断有影响吗
10299823 发表于 2022-10-11 21:55 | 显示全部楼层
stm32的固件库里有delay_ms();函数吗?
macpherson 发表于 2022-10-17 21:42 | 显示全部楼层
怎么用定时器替代延时函数?         
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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