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

STM32中SysTick的CTRL寄存器在延时函数中的处理

[复制链接]
Pure Tiger 提问时间:2022-9-24 09:56 / 已解决
我们在利用systick计时器对LED等延时的时候,
如我图中所示,这里的for循环中的ms和我们的systick–>LOAD的值不是同一个,那当for循环结束以后,为啥我的systick–>CTRL的第16位就会为1呢,也就是为什么systick–>LOAD这个值也就计数到了0 ?(我的意思就是他们俩应该不同步的吧!因为二者数值大小都不一样)

图片.jpg
收藏 评论1 发布时间:2022-9-24 09:56

举报

1个回答
xmshao 最优答案 回答时间:2022-9-26 12:01:43
Systick_load装的计数器重装值,对应着1ms的计数时钟个数。你这里还有个以ms为单位的延时值.


显然这两个值代表不同的意思。


你还要清楚一点,那就是Systick计数器每完成一次计数,systick–>CTRL的第16位countflag会被置1。


你给出的代码的for循环就通过读得countflag的置1次数而实现指定的延时。注:countflag位有读清零特性。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版