stm32https://cn.bing.com/滴答定时器延时失效、导致时序混乱崩溃问题

stm32 滴答定时器延时失效、时序混乱问题

1 、 stm32裸机程序运行时的滴答定时器问题

当裸机运行大量程序时,滴答定时器很容易出现程序崩溃的问题。如:滴答延时失效或者变短、或者是时序混乱。
1.1
之前用裸机做小车时,遇到了定时器中断里陀螺仪更新姿态和滴答定时器冲突的问题。嘀嗒定时器延时在此程序中失效,延时时间变得极短,结果整个程序就崩溃了。
后来发现,如果在定时器中断里调用滴答定时器延时会存在扰乱时序的情况,因为嘀嗒定时器的中断等级默认为最低,在中断中再次调用嘀嗒定时器(可能)会把值赋给中断前被打断的滴答定时器。
1.2
在用直流电机和乐拍索尔舵机控制板进行机械臂控制时,出现了串口1和陀螺仪紊乱的情况,经排查,也是出现了嘀嗒定时器导致程序时序崩溃的问题。

2 解决办法

针对这类问题,以我的见识和能力来说,我只能提供三种解决办法。
2.1、 采用for循环进行软件延时(缺点是延时不是很准确)

2.2 采用定时器延时,把配置定时器配置成固定的时间进行中断,中断中设置一个自增变量。然后延时函数里调用定时器+循环语句进行延时。(比第一种延时方式精确)
2.3 在操作系统上编写代码 如 ucosiii 和ucosiii

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值