打印
[应用相关]

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

[复制链接]
1362|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2021-2-23 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一种,RTC
STM32外接一个RTC时钟芯片,使用方法就是记录当前时间,比如,当前时间是12点24分36秒。然后,在主函数里面循环查询时间,当时间到达14点24分36秒时,发送信息。
· 误差在10秒到2分钟以内
· 需要外部扩展RTC芯片
第二种,采用硬件中断
采用STM32内置定时器,比如采用定时器1,定时1秒钟。每次定时中断函数,里面的flag自动加1。当flag等于7200的时候,就表示两个小时到了。
· 该方法误差在1秒以内
· 不需外接RTC芯片
第三种,使用实时操作系统
将时间管理直接放权给实时内核,他会自动管理。
· 不额外占用系统资源
· 误差在1秒之内
· 但是依靠系统内核(可以自己百度学习实时内核)
总结来说,如果就是很简单的程序,就采用方法二。如果程序较为复杂,可以尝试上个内核,时间管理直接内核来负责。

使用特权

评论回复
沙发
xyz549040622| | 2021-2-23 21:49 | 只看该作者
延时2小时,不能叫延时,应该叫闹钟了,必须上rtc呀。

使用特权

评论回复
板凳
hjl2832| | 2021-2-24 08:43 | 只看该作者
看来楼主对STM32不熟悉,很多系列都自带了RTC的,另外,上RTC了,还查询什么时间?直接闹钟设为2小时就行了。而且,RTC的时间误差,不会比内置的时钟大,更不会达到你说的2分钟,这是第二个误区。第3种,实时系统,它的原理还是跑的系统时钟,误差只会比RTC大,不会比RTC小。

使用特权

评论回复
地板
tom_xu| | 2021-2-24 16:14 | 只看该作者
误差高达2分钟,那还能叫RTC吗?

使用特权

评论回复
5
laocuo1142| | 2021-3-2 09:38 | 只看该作者

实时操作系统太难学了

使用特权

评论回复
6
nawu| | 2021-3-4 07:54 | 只看该作者
我还是喜欢用定时器

使用特权

评论回复
7
qcliu| | 2021-3-4 07:56 | 只看该作者
误差太高了也

使用特权

评论回复
8
tfqi| | 2021-3-4 07:57 | 只看该作者
都需要几个非常不错的晶振

使用特权

评论回复
9
wiba| | 2021-3-4 07:59 | 只看该作者
第一种方法误差太大 肯定哪里有问题

使用特权

评论回复
10
zljiu| | 2021-3-4 07:59 | 只看该作者
用定时器最简单了

使用特权

评论回复
11
gygp| | 2021-3-4 11:17 | 只看该作者
单片机的延时程序通过执行指令来达到延时效果

使用特权

评论回复
12
chenci2013| | 2021-3-4 11:27 | 只看该作者
要用到定时器/计数器,这种方法可以提高CPU的工作效率

使用特权

评论回复
13
biechedan| | 2021-3-4 11:27 | 只看该作者
使用定时器/计数器实现精确延时  

使用特权

评论回复
14
wangdezhi| | 2021-3-4 11:28 | 只看该作者
延时多长时间要看你单片机的频率和使用的语言种类

使用特权

评论回复
15
isseed| | 2021-3-4 11:28 | 只看该作者
如果要较为精确地计算延时,应当以汇编语句为准,每条指令的周期数都是确定的。

使用特权

评论回复
16
xietingfeng| | 2021-3-4 11:32 | 只看该作者
延时时间长度是怎么算的?  

使用特权

评论回复
17
suzhanhua| | 2021-3-4 11:33 | 只看该作者
用延时程序的话,误差较大。  

使用特权

评论回复
18
mituzu| | 2021-3-4 11:33 | 只看该作者
外接RTC芯片  

使用特权

评论回复
19
hellosdc| | 2021-3-4 11:34 | 只看该作者
延时多长时间要看你单片机的频率

使用特权

评论回复
20
uiint| | 2021-3-4 11:34 | 只看该作者
作时需要外部设备辅助  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

964

主题

2938

帖子

7

粉丝