一个跑在EK-STM32F板子上的RTC作为calender的例子,供大家参考

lingdukongjian   2008-1-4 10:03 楼主
硬件连接:串口线连至板子的UART-0端口。超级终端设置为:
Bits Per seconds: 115200
Data bits: 8
Parity: none
Stop bits: 1
Flow control Hardware

板子第一次跑这个程序时,进入时间配置。
根据超级终端上的提示,一次输入年,月,日,时,分,秒
(1月就输入01,10月直接输入10;同理3号就输入03)
随后当前的时间就显示到了超级终端上,并且每秒刷新。

没有断电的情况下再跑这个程序,由于看到bake up区域有被设置过时间的标志,不再进入时间设置阶段,而是直接到时间显示间断,在超级终端上,每秒刷新。

当然如果在EK-STM32F板子上将Vbat和电池相接,具体就是:将红色的电源跳线帽中的从下往上数的第5个取下,从原来的水平放置改成竖直放置(和上面的VBAT相连)。就算断电,只要再上电,看到back up区域中的记号,一样直接进入时间显示。因为断电后,back up区域由电池供电,其中记录的记号不会由于系统掉电而消失。
相关链接:https://bbs.eeworld.com.cn/upfiles/img/20077/2007726143559659.zip

回复评论 (21)

谢谢!

                                 顶一个
点赞  2008-1-4 11:25

这是一个很好的例子,它演示了如何使用STM32的UART和RTC

同时还演示了以下内容:
1)后备寄存器的用法
2)如何从RTC得到日历时间
3)RTC时间的初始设置
4)主电源供电和电池供电之间的转换

使用这个例子还可以评估用电池维持RTC供电的性能。
点赞  2008-1-4 18:17

呵呵,谢谢。正需要类似的一些应用帖子

                                  
点赞  2008-1-4 22:51

确实不错~~~

                                  
点赞  2008-1-4 23:20

很不错啊

                                  
点赞  2008-1-4 23:45

很好 不可多得的财富

                                 谢谢
点赞  2008-1-5 13:07

连续执行RTC_Configuration(void)时死机

                                 在MCBSTM32板上跑这个程序,在RTC_Configuration(void)函数的while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)处打一个断点,程序可以执行下去,如果时连续执行,就会产生HardFault中断。不知道是什么原因?
点赞  2008-1-8 16:19

请检查你板上的32.768kHz的晶振是否接好,是否起振

                                 打一个断点后,程序可以执行下去,结果对吗?
点赞  2008-1-8 17:43

正在做类似的试验呢

                                 感谢了    !太好了 
点赞  2008-1-8 19:18

请注意晶振以及匹配电容的选择

请注意晶振以及匹配电容的选择

请使用示波器看看晶振有没有起振
点赞  2008-1-8 22:39

路过

                                  
点赞  2008-1-8 23:00

连续执行RTC_Configuration(void)时死机

打一个断点后,程序可以执行下去,结果也是对的。用示波器观察,32.768k晶振也振荡了,RTC计数器也每秒+1了。连续执行时强行打断发现程序在HardFault_Hander处死循环。

点赞  2008-1-9 11:13

请在HardFault_Hander处设个断点

连续执行应停在断点处,停下后通过堆栈可以看到是从哪里跳过来的,然后再分析为什么。

5楼Hot大叔试过没有问题呀。
点赞  2008-1-9 11:50

进入HardFault_Hander断点时SP已经乱了

                                 进入HardFault_Hander断点时SP已经乱了,SP所指的区域没有有效数据。
点赞  2008-1-9 13:51

在while语句之后放一个断点,会怎么样?

                                 另外检查一下你的板子与楼主用的有什么不同!
点赞  2008-1-9 14:09

RTC终于跑起来了

                                 RCC_Configuration()和RTC_Configuration(void)采用..KeilARMExamplesSTSTM32F10xRTC中的例子而不是采用..KeilARMBoardsKeilMCBSTM32Blinky中的例子就正常了,还没有分析是什么原因。
点赞  2008-1-9 14:48

建议

                                 建议在例子中写明支持的软件环境:Keil、IAR或其它。
点赞  2008-1-9 14:57

对8楼的做法很不满意,自己没有搞清楚,还害得别人跟你瞎

你在8楼说的很清楚:

nnnzhao 发表于 2008-1-8 16:19 ST MCU ←返回版面    

8楼: 连续执行RTC_Configuration(void)时死机 

在MCBSTM32板上跑这个程序,在RTC_Configuration(void)函数的while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)处打一个断点,程序可以执行下去,如果时连续执行,就会产生HardFault中断。不知道是什么原因?


这显然是指楼主的程序!但在17楼又提到其他的例子,害得别人跟你瞎忙,耽误大家的时间!

nnnzhao 发表于 2008-1-9 14:48 ST MCU ←返回版面    

17楼: RTC终于跑起来了 

RCC_Configuration()和RTC_Configuration(void)采用..KeilARMExamplesSTSTM32F10xRTC中的例子而不是采用..KeilARMBoardsKeilMCBSTM32Blinky中的例子就正常了,还没有分析是什么原因。


如果真正有问题,我不在乎花时间帮你解决,但这种滥用别人的时间,是非常不负责任的!
点赞  2008-1-9 15:10
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复