找回密码
 注册
关于网站域名变更的通知
查看: 454|回复: 4
打印 上一主题 下一主题

stm32如何延时两小时,用哪种方式好?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-13 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 行者~ABC 于 2020-11-13 09:45 编辑 5 b/ y& \7 }: g4 G1 H% d: a

6 K: [& d6 t) o第一种,RTC
stm32外接一个RTC时钟芯片,使用方法就是记录当前时间,比如,当前时间是122436秒。然后,在主函数里面循环查询时间,当时间到达142436秒时,发送信息。
· 误差在10秒到2分钟以内
· 需要外部扩展RTC芯片
第二种,采用硬件中断
采用STM32内置定时器,比如采用定时器1,定时1秒钟。每次定时中断函数,里面的flag自动加1。当flag等于7200的时候,就表示两个小时到了。
· 该方法误差在1秒以内
· 不需外接RTC芯片
第三种,使用实时操作系统
将时间管理直接放权给实时内核,他会自动管理。
· 不额外占用系统资源
· 误差在1秒之内
· 但是依靠系统内核(可以自己百度学习实时内核)
总结来说,如果就是很简单的程序,就采用方法二。如果程序较为复杂,可以尝试上个内核,时间管理直接内核来负责。
: O4 P* \* [& U. q4 w: U( X' A0 Q& O4 t. k$ V1 O& v

6 P$ r3 s: P) Y% \2 I
% H3 b5 U) E  t/ B# m3 U  L4 Y1 }

, k8 R( g9 |+ p/ |9 x
# u. u! g1 r( j& h

该用户从未签到

2#
发表于 2020-11-13 09:52 | 只看该作者
对的,用操作系统容易实现延时

点评

操作系统用起来方便  详情 回复 发表于 2020-11-13 13:58
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-11-13 10:17 | 只看该作者
    定时器也可以实现

    点评

    定时器会麻烦,需要写一段函数,用操作系统就方便了  详情 回复 发表于 2020-11-13 10:36

    该用户从未签到

    4#
    发表于 2020-11-13 10:36 | 只看该作者
    Heaven_1 发表于 2020-11-13 10:17. Z8 q: j. q- h- R0 n
    定时器也可以实现

    ! e' ^$ m+ v% A3 V3 D0 l定时器会麻烦,需要写一段函数,用操作系统就方便了
    " M) ^0 Q/ P+ H$ Q3 @: E

    该用户从未签到

    5#
    发表于 2020-11-13 13:58 | 只看该作者
    行者~ABC 发表于 2020-11-13 09:52
    8 l! o  n/ }% k( x对的,用操作系统容易实现延时
    9 c. G. \$ \2 h4 y2 q' H- R1 {! N
    操作系统用起来方便
    5 E! A/ B( z8 `/ g/ R: d" T
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-22 21:01 , Processed in 0.078125 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表