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

stm32延时两小时的方式

[复制链接]
gaosmile 发布时间:2020-11-24 21:45
第一种,RTC
STM32外接一个RTC时钟芯片,使用方法就是记录当前时间,比如,当前时间是12点24分36秒。然后,在主函数里面循环查询时间,当时间到达14点24分36秒时,发送信息。
· 误差在10秒到2分钟以内
· 需要外部扩展RTC芯片

; k  \  z+ v1 k# K
第二种,采用硬件中断
采用STM32内置定时器,比如采用定时器1,定时1秒钟。每次定时中断函数,里面的flag自动加1。当flag等于7200的时候,就表示两个小时到了。
· 该方法误差在1秒以内
· 不需外接RTC芯片

! F, E7 [7 _9 W
第三种,使用实时操作系统
将时间管理直接放权给实时内核,他会自动管理。
· 不额外占用系统资源
· 误差在1秒之内
· 但是依靠系统内核(可以自己百度学习实时内核)
总结来说,如果就是很简单的程序,就采用方法二。如果程序较为复杂,可以尝试上个内核,时间管理直接内核来负责。
4 E, l! A6 t% e* T% q- g
赞 收藏 评论1 发布时间:2020-11-24 21:45

举报

1个回答
radio2radio 回答时间:2020-11-24 22:25:03
一楼有误! 以下我说的不对,也请网友指正。) O* E( m" S9 v

& |: l' {  O% _第一种,RTC最准。 不然RTC就没有IC厂生产了,不准还要“外扩”就没有意义了。
( h1 p; _1 ~0 O1 X* u" h! \9 `独立的RTC IC有两种,一种是需要自己检测准确度的,通常是外接32768晶体,生产线检测准确度。做得好的,可以有+/-10ppm(误差很小),关键是要用批质量好的晶体,和专用检测设备(设备不贵,电子手表厂大量使用)。
2 C1 U( @; q7 \- _  u, E另一种没有这么麻烦,IC厂已经帮您调整好了,买来就用,准确度有保证,当然价格也略高。. ?5 d0 H9 ?3 d6 @* @

9 c! K1 R% {4 b$ z, U第二种,第三种,原理一样,准确程度取决于MCU的时钟源的准确度,可以很准,也可能很差。 如果软件做得好,可以进行一次出厂软件校准。 如果联网,还可以定时做时钟同步。5 |/ ]; j: [5 K
0 e, g6 I: w+ P9 {, c: J- c
另外,STM32的各种IC,一般都有一内置的RTC,准确度取决于32768晶体,等于上面的第一种方法,一般不需要外置IC了。  注意,这个内置的RTC,通常都没有“自动万年历”的功能,需要软件补足。2 x7 I2 {4 t5 e. N4 z1 {6 o% V
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版