金牌会员
- 积分
- 1280
- 金钱
- 1280
- 注册时间
- 2013-12-14
- 在线时间
- 567 小时
|
发表于 2016-5-25 16:54:57
|
显示全部楼层
我没有用过stm32f103的RTC,但是现在稍微使用了一下stm8l151的RTC。如果楼主说差别的话,据说stm32f103的RTC是没有真正的“时间寄存器”的。就是只有一个秒在自加,相当于一个计数器,如果想要得出分钟,小时等等还要进行换算,stm8l是有这些寄存器的,例如,秒寄存器,分钟寄存器等等,具体可以看手册的427页的简介24.3.2 Real-time clock and calendar ,我没有仔细看,不知道这些寄存器是否有闰年补偿等功能,因为我没有用到。
翻了下手头stm32l151的参考手册,名称是RM0031,如果楼主的单片机和我的型号不一样可能会有些差别,我这里就不截图了,楼主可以去下载RM0031的原版英文手册,对照页数来看。
435页下面的table77,表明stm8l151的RTC中断有五种,后三种我没用到,没有看,现在说下ALARM中断和auto wakeup中断。
ALARM中断我搞过,还要设定初始时间,然后闹钟定一个时间,进入中断的时候还要将初始时间清零,感觉很复杂,我记得我也没搞出来...
auto wakeup就轻松很多,你只需要设定好用哪个时钟,设置好分频,使能以后他就会自动的走了,最长支持36个小时中断一次,完全满足楼主的6小时要求。
综上,我认为楼主这种情况最好还是使用那个auto wakeup中断,顾名思义,自动唤醒中断。
看下功能多不多吧,如果功能不多,用active-halt是比较理想的,功耗仅次于halt模式。具体配置楼主可以看看st官方评估板的例程,例程没有的看看stm8l的官方库,配合参考手册看看寄存器,很快就可以搞出来的。
我也是个新手,刚开始使用stm8l,希望以后可以交流。 |
|