stm32延时一分钟_请问stm32如何延时两小时,用哪种方式好?

这个问题已经这么长时间了,我想大概率题主已经解决问题了。

作为后来者,我看了很多朋友写的回答。总结一下,解决方法有3种:RTC、定时器、延时(OS延时或直接延时函数)。这其中最适合题主应用需求的就是RTC。

很多朋友说需要外挂DS1302之类的RTC,其实没有必要,绝大多数stm32f103(及以上型号)都带有片上RTC,一般需要高精度低功耗的话需外接32.768K的晶振(本想插个Stm32时钟树的照片,但是手机存的草稿到电脑上不知道从哪里找到)。RTC可以选择3种时钟源:外部32.768K晶振,外部高速时钟的128分频,内部40K低速RC振荡器(一般供独立看门狗)。所有,题主不想改电路也是可以实现的。

为什么说RTC最合适?有几个原因。

第一,精度。这个很多朋友都说了,不赘述。

第二,低功耗。这个我认为非常重要。题主做无线传感器节点,对功耗的要求是非常高的。如果采样延时函数的方式,cpu一直在全速运行,但是要2个小时才上传一次数据,对于99.9%(没有严格算)的cpu时间都是浪费的。那么如果使用RTC情况就不一样了。RTC做好定时设置后,可以让mcu进入低功耗模式,cpu可以停止,甚至连外部时钟都可以停止,把功耗降到最低。到指定时间时RTC能够唤醒mcu,此时完成采样并上传,上传完成后,设置RTC,然后又能进入低功耗。这样可以显著降低功耗。

根据stm32f103官方datasheet,工作在72M频率时,供电电流为70mA(全外设使能);工作在停止模式(低功耗模式的一种),起电流仅为35uA,相差2000倍。

插个cubemx的时钟配置截图。从图可以看出,未连接32.768k晶振,仅使用HSE 8M晶振,同样可以选用LSI的40KHz作为RTC时钟源。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值