OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3914|回复: 3

STM32-RTC实时时钟,实现毫秒时钟输出

[复制链接]

1

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-11-30
在线时间
73 小时
发表于 2019-3-22 14:30:54 | 显示全部楼层 |阅读模式
10金钱
想通过串口输出ADC采样值,在数值前面加上时间戳,参考原子试验15 RTC,但是最小时间单位就是1s。论坛搜索一番找不到相关资料,在网上找到了一个高手给出了明确的方案,链接如下

https://www.cnblogs.com/WhiteTears/p/8726340.html#_label4  也是原子的例子改的,但是试验不成功,串口显示毫秒输出一直为零,求高手解答

串口输出.png
故障点.png
毫秒设置.png

实验15 RTC实验--实现时钟毫秒输出.zip

4.62 MB, 下载次数: 85

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-11-30
在线时间
73 小时
 楼主| 发表于 2019-3-23 12:07:03 来自手机 | 显示全部楼层
为什么连续读RTC_GetDivider()不成功?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-23 12:58:25 | 显示全部楼层
其实没必要, 串口助手可以设置收到换行码后自动加上时间戳的
回复

使用道具 举报

0

主题

89

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1286
金钱
1286
注册时间
2020-4-7
在线时间
309 小时
发表于 2020-5-27 11:46:55 | 显示全部楼层
本帖最后由 lv浅陌 于 2020-5-27 21:53 编辑
jushihao 发表于 2019-3-23 12:07
为什么连续读RTC_GetDivider()不成功?
RTC时间是在秒中断里面更新时间到calendar结构体里面,也就是RTC_CNT 的值发生改变(增加1,时间过去了1秒)。而RTC_DIV是预分频器的余数寄存器在RTC_CNT的值发生改变时会重新由硬件装载为RTC_PRL寄存器的值,这个值是32767。这种情况下你再读取这个值,利用公式(32767-RTC_GetDivider()) *1000/32767计算ms时间时,这个RTC_GetDivider()得到的值是32767,计算的结果是0 ,也就是一直显示是0了。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 16:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表