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

读取RTC的时刻

[复制链接]
penghao 提问时间:2016-4-7 17:38 /
设备要记录某个事件发生时的时刻,但如果只用STM32的RTC的话,如何读取到分辨率为毫秒的时刻,大概看了下RTC的资料,基本上都是计时到1秒。
收藏 评论5 发布时间:2016-4-7 17:38

举报

5个回答
adlu 回答时间:2016-4-7 18:08:56
可以用如下方法做到:
使能一个定时器,比如SysTick定时器,配置为每ms计数一次,可以不使能中断。
发生事件时,读取一次RTC,并读取一次SysTick的计数寄存器CNT,保存到变量tmp1中。
然后循环读取RTC,当读到的值和上一次的发生变化时,再读取一次SysTick的计数寄存器CNT,保存到变量tmp2中。
1000 - (tmp2-tmp1)就是毫秒数了。

当然,该方法使用的局限是,要记录的事件如果发生多次,要求至少间隔2秒以上。
penghao 回答时间:2016-4-7 18:22:54
adlu 发表于 2016-4-7 18:08
可以用如下方法做到:
使能一个定时器,比如SysTick定时器,配置为每ms计数一次,可以不使能中断。
发生事 ...

这个想法不错,不过事件2秒内应该发生不止一次,所以不太实用,手册上讲亚秒的,不过没怎么理清,不知你是否对此了解,帮忙讲解下。
废鱼 回答时间:2016-4-8 09:57:02
可以用RTC+SysTick定时器的方法来实现。
penghao 回答时间:2016-4-8 10:49:52
安 发表于 2016-4-8 09:57
可以用RTC+SysTick定时器的方法来实现。

麻烦能说下大概流程嘛
废鱼 回答时间:2016-4-8 14:55:00
RTC获取秒级别的定时,SysTick定时器可以计算毫秒。比如秒中断产生时,记一下当前的毫秒数。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版