systick使用出错总结

在STM32的延时函数中,由于对SysTick控制器的CTRL寄存器标志位判断不当,导致延时功能出现问题。关键在于正确处理[16]位,该位置1表示计数到0,但读取后会自动清零。修复方法是先将CTRL寄存器的值保存到临时变量,然后根据临时变量判断标志位,以确保正确执行计时。
摘要由CSDN通过智能技术生成

在延时函数里,对一次计数结束进行判断时,出现了失误,导致延时时长出现异常。      

先说明函数设计想法,主要while结束判断条件设计,要保证计数器在工作计数到0结束。因此对SysTick->CTRL寄存器有两标志位要进行判断。

计数到0,[16]置1。重点是[16]读取后会清零,因此用一个temp变量进行一次读取,再分别判断标志位。


错误代码:                                                                                                                           

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值