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

读取RTC的时刻

[复制链接]
nipenghao 提问时间: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秒以上。
nipenghao 回答时间:2016-4-7 18:22:54
adlu 发表于 2016-4-7 18:08
可以用如下方法做到:
使能一个定时器,比如SysTick定时器,配置为每ms计数一次,可以不使能中断。
发生事 ...

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

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

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版