打印

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

[复制链接]
10549|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lut1lut|  楼主 | 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.21ic.com/upfiles/img/20077/2007726143559659.zip
沙发
zhangqibo| | 2008-1-4 11:25 | 只看该作者

谢谢!

顶一个

使用特权

评论回复
板凳
香水城| | 2008-1-4 18:17 | 只看该作者

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

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

使用这个例子还可以评估用电池维持RTC供电的性能。

使用特权

评论回复
地板
benladn911| | 2008-1-4 22:51 | 只看该作者

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

使用特权

评论回复
5
hotpower| | 2008-1-4 23:20 | 只看该作者

确实不错~~~

使用特权

评论回复
6
mcu430| | 2008-1-4 23:45 | 只看该作者

很不错啊

使用特权

评论回复
7
lvkush0903| | 2008-1-5 13:07 | 只看该作者

很好 不可多得的财富

谢谢

使用特权

评论回复
8
nnnzhao| | 2008-1-8 16:19 | 只看该作者

连续执行RTC_Configuration(void)时死机

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

使用特权

评论回复
9
香水城| | 2008-1-8 17:43 | 只看该作者

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

打一个断点后,程序可以执行下去,结果对吗?

使用特权

评论回复
10
mcuhot| | 2008-1-8 19:18 | 只看该作者

正在做类似的试验呢

感谢了    !太好了 

使用特权

评论回复
11
notalklu| | 2008-1-8 22:39 | 只看该作者

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

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

请使用示波器看看晶振有没有起振

使用特权

评论回复
12
sz_kd| | 2008-1-8 23:00 | 只看该作者

路过

使用特权

评论回复
13
nnnzhao| | 2008-1-9 11:13 | 只看该作者

连续执行RTC_Configuration(void)时死机

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

使用特权

评论回复
14
香水城| | 2008-1-9 11:50 | 只看该作者

请在HardFault_Hander处设个断点

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

5楼Hot大叔试过没有问题呀。

使用特权

评论回复
15
nnnzhao| | 2008-1-9 13:51 | 只看该作者

进入HardFault_Hander断点时SP已经乱了

进入HardFault_Hander断点时SP已经乱了,SP所指的区域没有有效数据。

使用特权

评论回复
16
香水城| | 2008-1-9 14:09 | 只看该作者

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

另外检查一下你的板子与楼主用的有什么不同!

使用特权

评论回复
17
nnnzhao| | 2008-1-9 14:48 | 只看该作者

RTC终于跑起来了

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

使用特权

评论回复
18
ijk| | 2008-1-9 14:57 | 只看该作者

建议

建议在例子中写明支持的软件环境:Keil、IAR或其它。

使用特权

评论回复
19
香水城| | 2008-1-9 15:10 | 只看该作者

对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中的例子就正常了,还没有分析是什么原因。


如果真正有问题,我不在乎花时间帮你解决,但这种滥用别人的时间,是非常不负责任的!

使用特权

评论回复
20
lut1lut|  楼主 | 2008-6-10 14:20 | 只看该作者

重传

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

483

帖子

3

粉丝