• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32中软件定时器啥情况需要用

liuxiaofei126 2018-11-21 浏览量:787

stm32中软件定时器啥情况需要用,感觉这个挺复杂的

typedef struct soft_timer {
    uint32_t timer_count;      //定时器用的计数器
    uint32_t time_out;           //阀值
    void (*time_out_callback)(void *param); //回调函数
    void *param; //回调函数参数
    uint8_t timer_flag; //定时器属性标志
}soft_timer_t;
复制代码

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 软件定时器用在有操作系统的程序里。

    使用定时器,肯定是要求定时到达后执行某些操作。


    简单的程序里,定时到达后执行的操作基本上是固定的。

    但复杂的程序,不同时候需要完成不同的任务。

    另外,很多硬件定时器要用于PWM等工作。留给程序员使用的硬件定时器就不多了。


    使用软件定时器就更加灵活

    比如,参数3——回调函数。启动软件定时器时,告诉它,定时到达去执行这个回调函数啊。

    接下来的代码可以继续执行别的任务,不必操心定时到达后的处理工作。


    • 发布于 2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 如需要定时中断处理任务就需要用到软件定时器,或者阻塞延时也可以用定时器,
    • 发布于2018-11-21
    • 举报
    • 评论 1
    • 0
    • 0
liuxiaofei126 回复了 yhj416606438 :不是简单的定时中断那种定时器, 回复

  • 这个是任务里面的定时器,其实这些看起来更像是完善OS,让OS看起来更像OS.实际实用没这么用过.
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是操作系统的定时器,stm32没有软件定时器,库里面有个HAL_Delay延时

    操作系统的软件定时器是个单独的任务实现的,定时时间到了,callback 代码就运行,可以是单次定时器,也可以是循环定时

    硬件定时器怎么用,这个也怎么用,还比较简单好用,这个只有定时功能没有stm32 timer功能多。

    比如你的代码不是硬件控制精准定时,都可以用软件定时器,不占用timer外设没有数量限制,唯一不好的地方就是精度不高,还可能收中断影响多个时钟干扰。

    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个定时器其实只是通过其他的定时器做的一个假的定时器,定时精度也不高的
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个定时器只是一个最简单的模拟定时器吧,计数值还要依赖别的定时器,应该只是方便新手理解的。
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个定时器应该是靠软件计时的,这个软件定时器也是需要有一个时间基准的,一般用的systick,本质上跟硬件的定时器没什么区别
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是用的软件定时,在软件里面设置你的定时器操作
    • 发布于2018-12-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32中软件定时器啥情况需要用