你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

下面这段延时程序怎么理解?求大神解答

[复制链接]
月霜寒 提问时间:2017-4-14 11:37 /
volatile u32 temp = 0;      
  SysTick->LOAD=10000*fac_us; //时间加载      
  SysTick->VAL=0x00;        //清空计数器
  SysTick->CTRL=0x01 ;      //开始倒数   
  do
  {
    temp=SysTick->CTRL;
  }
  while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   
  SysTick->CTRL=0x00;       //关闭计数器
  SysTick->VAL =0X00;       //清空计数器  
//这是延时多久,怎么实现的延时?
收藏 1 评论6 发布时间:2017-4-14 11:37

举报

6个回答
混森蓝兽 回答时间:2017-4-14 12:32:17
这是利用systick来进行精准的延时,大体的流程就是开始systick定时定量,然后 SysTick->LOAD加载设定好的定时计数值,然后开始向下递减,减到0之后,COUNTFLAG标志位会被置1,然后跳出 while循环,延时完成。
延时时间与SysTick->LOAD的值还有systick选择的时钟源相关,具体你可以看一下原子或者野火的资料。
systick.png
月霜寒 回答时间:2017-4-14 13:13:30
多谢,
五哥1 回答时间:2017-4-16 10:25:25
HAL_Delay(),就是这样用
harvardx 回答时间:2017-4-16 19:03:48
cortex-M核心 最常用的一招 us等短延时, 直接利用sys_tick实现
arenas 回答时间:2017-4-17 11:32:03
systick计时,现实时间取决于时钟设置
月霜寒 回答时间:2017-4-17 11:48:04
我上面那段程序是延时多久呢?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版