STM8L RTC是否有类似闹钟中断功能?

2019-07-19 21:13发布

       我做了RTC秒中断RTC_SetWakeUpCounter((uint)1); 多少秒中断一次,唤醒单片机!现在需要每隔6小时重新初始化加速度模块,防止加速度死在那不运作,这样我就需要一个类似STM32F103的RTC中闹钟中断一样的功能!
       以前都是看着原子哥的教程学STM32F103的,这STM8L的以前没有接触过,不知道这RTC跟STM32的有什么样的区别!求有了解的大神指点下STM8L闹钟中断的思路!
       谢谢~!~!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
东北小辉辉
1楼-- · 2019-07-20 02:32
我没有用过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,希望以后可以交流。

一周热门 更多>