一花一世界003 发表于 2015-1-28 15:10:59

mbed之RCT打印时间

RTC由两个主要部分组成。第一部分(APB1接口)用来和 APB1总线相连。此单元还包含一组 16位寄存器,可通过 APB1总线对其进行读写操作。APB1接口以 APB1总线时钟为时钟,用来与 APB1总线接口。另一部分(RTC核)由一系列可编程计数器组成,分成两个主要模块。第一个模块是 RTC的预分频模块,它可编程产生最长为 1秒的 RTC时间基准 TR_CLK。RTC的预分频模块包含了一个 20位的可编程分频器(RTC预分频器)。在每个TR_CLK周期中,如果在 RTC_CR 寄存器中设置了相应允许位,则 RTC产生一个中断(秒中断)。第 2个模块是一个 32位的可编程的计数器,它可被初始化为当前的系统时间。系统时间以 TR_CLK速度增长并与存储在 RTC_ALR寄存器中的可编程的时间相比较,如果 RTC_CR控制寄存器中设置了相应允许位,则比较匹配时将产生一个闹钟中断。RTC初始化程序
void RTC_configuration()
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);
PWR_BackupAccessCmd(ENABLE);//使能RTC后备寄存器的写
BKP_DeInit();//BKP寄存器全部设为缺省值
RCC_LSEConfig(RCC_LSE_ON);//RCC打开了LSE时钟
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);//等待LSE就绪,一般来说,如果谐振不对,就会死在这里,实际代码请慎重
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//RTC使用时钟源LSE
RCC_RTCCLKCmd(ENABLE);//RTC的时钟开启
RTC_WaitForSynchro();//RTC等待同步,
RTC_WaitForLastTask();//这个代码在RTC中常常出现,类似于等待就绪的含义
//RTC_ITConfig(RTC_IT_SEC, ENABLE);//RTC秒中断
RTC_WaitForLastTask();//
RTC_SetPrescaler(32767);//RTC预分频,32768HZ,分为一秒一个振荡,RTC period = RTCCLK/RTC_PR = (32.768KHz)/(32767+1)
RTC_WaitForLastTask(); //等待同步
PWR_BackupAccessCmd(DISABLE);//禁止RTC后备寄存器的写      
}MBED的程序:#include "mbed.h"Serial pc(SERIAL_TX, SERIAL_RX);DigitalOut myled(LED1);
int main() {        pc.printf("RTC example\n");     set_time(1387188323); // Set RTC time to 16 December 2013 10:05:23 UTC    pc.printf("Date and time are set.\n");
    while(1) {
      time_t seconds = time(NULL);
      //printf("Time as seconds since January 1, 1970 = %d\n", seconds);            pc.printf("Time as a basic string = %s", ctime(&seconds));
      //char buffer;      //strftime(buffer, 32, "%I:%M:%S %p\n", localtime(&seconds));      //printf("Time as a custom formatted string = %s", buffer);
      myled = !myled;            wait(1);    }}运行结果


一花一世界003 发表于 2015-1-28 15:11:45

set_time(1387188323); // Set RTC time to 16 December 2013 10:05:23 UTC这句还在研究

天天晓宇 发表于 2015-1-28 15:44:26

:D:D:D:D:D

沐紫 发表于 2015-1-28 16:49:40

楼主直接copy过来的吧,注意发帖要有自己的内容,提高帖子质量

shaoziyang 发表于 2015-1-28 16:49:48

标题写成RCT了。

dsjsjf 发表于 2015-1-29 09:15:05

学习            

一花一世界003 发表于 2015-2-2 18:57:47

RCT RemoteComputerTerminal: 远程计算机终端
RTC是RTC: 实时时钟(Real Time Clock)

一花一世界003 发表于 2015-2-2 18:58:24

不知道怎么去修改已发布的文章

wgsxsm 发表于 2015-2-5 00:16:58

加油楼主
页: [1]
查看完整版本: mbed之RCT打印时间