查看: 2954|回复: 0

STM32F107VC金龙开发板 第七章 金龙107——RTC

[复制链接]

该用户从未签到

发表于 2015-4-14 10:41:11 | 显示全部楼层 |阅读模式
分享到:
第七章 金龙107——RTC
7.1 RTC简介:
    RTC是“Real  Time Clock”的简称,意为实时时钟,想必各位读者都非常熟悉这一模块(例如DS1302),事实上,RTC模块在电子产品上的应用非常广泛,从大型的工业机器到个人电脑、家用电器甚至是廉价的电子手表,都不乏RTC的身影。
    STM32微控制器向用户提供了一个简易的RTC单元,之所以说其简易,因为其本质上是一个独立的32位定时器,没有类似DS1302的日历功能(相应的软件配置也可实现)
RTC使用的时钟源有三种,分别为高速外部时钟的 128 分频:HSE/128;低速内部时钟 LSI;使 用HSE 分频时钟或 LSI 的话,在主电源 VDD 掉电的情况下,这两个时钟来源都会受到影响,因此没法保证 RTC 正常工作。因此 RTC 一般使用  低速外部时钟 LSE,频率为实时时钟模块中常用的 32.768KHz,这是因为 32768 = file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wpsE6.tmp.png,分频容易实现,所以它被广泛应用到 RTC 模块。在主电源 VDD 有效的情况下(待机)RTC 还可以配置闹钟事件使 STM32 退出待机模式。
7.2实验说明:
金龙107开发板V1.0一块,J-linkV8keil4.23STM3.2库文件V3.5.0,USB数据线一根
3.2寸彩屏一块(SSD1298),串口线一根在本实验中,主要使用STM32F107RTC来实现数字时钟设计,通过串口打印输出到上位机
主要跳线帽:JP4JP7都接在2-3上,JP10JP11接在2-3
7.3硬件说明:
本实验主要涉及的硬件是3.2寸彩屏的显示和USART1的使用,
7.4程序说明:
本程序设计要点如下:
    ①配置RCC寄存器组,打开APB1总线上的PWRBKP设备时钟,开启LSE(外部低速晶振,典型值为32.768khz)并选择其为RTC计时时钟。
    ②配置GPIOUSART寄存器组。
    ③配置RTC寄存器组,使能秒中断,设置        RTC时钟分频值为32767。
    ④配置NVIC,开启RTC秒事件中断。
    本实验配置主要是对于RTC的配置,如果你是第一次启动的话,根据串口提示,他会首先让你设置时间,在你不断电,复位的时候不需要从新设置时间,一旦断电,则时间就需要重新通过串口设置,RTC的配置如下:
图片4.png
图片3.png
注意:
    我们要区分RTC的两个时钟,一是来自APB1总线的PCLK1时钟(36MHz,另一个是来自外部低速晶振LSE所提供的32.768kHz时钟。其中PCLK1时钟是供给STM32打开以及存取备份电源控制区的写保护用的,而写保护开关包含在BKP以及PWR寄存器组中,来自LSE的时钟则仅给RTC提供给32位定时器计数使用。
本例中也使能了RTC秒中断,每秒中断一次,置标志位为1,主函数检测到该标志位,则把实时时间打印输出。进入中断之后,判断中断源,清除中断标志位。我们从这里不难看出,RTC进行一次计时的时间T=32767+1/32.768kHz=1s。这样就可以得到时间间隔为秒的中断事件,同时读者也应该认识到为什么会有32.768kHz这样频率的晶振存在_____当某个分频寄存器的位数达到15位以上时,就可以提供至少为file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wpsE9.tmp.png=32768的分频值,配合32.768kHz的晶振就可以得到1Hz的频率,即1s时间周期,因此,32.768kHz的晶振经常用于带有实时时钟的系统中。
图片2.png
如果内核要对 RTC 寄存器进行任何的写操作,在内核发出写指令后,RTC模块在 3 RTCCLK 时钟之后,才开始正式的写 RTC 寄存器操作。我们知道RTCCLK 的频率比内核主频低得多,所以必须要检查 RTC 关闭操作标志位RTOFF,当这个标志被置 1 时,写操作才正式完成。这里调用了库函数RTC_WaitForLastTask();来确保写操作的完成。
同时本例中使用到了USART1的收发功能,断电之后首次启动,设置实时时间,和程序运行时,打印输出实时时间。
7.5实验现象:
连接串口线,设置好串口调试助手,注意端口要对应,彩屏蓝色字体显示“Gold Dragon ”, 红色字体显示:"RTC example:",其实彩屏在本例中,作用并不大,可忽略,我们在输入框里输入1,连续回车6次,程序就开始计时并通过RS232把时间发送到串口调试助手,设置和实验现象如下图
图片1.png

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-25 13:16 , Processed in 0.113428 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.