3111|3

1581

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【AT32F421测评】+RTC电子时钟 [复制链接]

 

在AT32F421的内部配置有RTC计时器,且为其配备了相应的例程来辅助学习、使用及功能验证。

对例程ERTC_Calendar的验证效果,如图1所示。

图1  RTC验证效果

 

为了便于直观的观察,可以将前面介绍过的OLED屏显示功能与RTC结合起来使用,其显示效果如图2所示。

图2时钟计时效果

 

实现图示计时效果的主程序为:

  • int main(void)
  • {
  •      NVIC_InitType  NVIC_InitStructure;
  •     EXTI_InitType  EXTI_InitStructure;
  •      int temp=0;
  •      AT32_Board_Init();
  •      AT32_OLED_Init();
  •      OLED_Init();
  •      OLED_Clear();
  •      OLED_ShowString(0,0,"AT32F421",16);
  •      OLED_ShowString(0,2,"RTC & OLED",16);   
  •      if (ERTC_ReadBackupRegister(ERTC_BKP_DT0) != 0x32F1)
  •     { 
  •      ERTC_Config();
  •      ERTC_TimeShow();
  •      ERTC_AlarmShow();
  •    }
  •   else
  •     {
  •      if (RCC_GetFlagStatus(RCC_FLAG_PORST) != RESET)
  •     {
  •       AT32_LEDn_ON(LED3);
  •     }
  •      else if (RCC_GetFlagStatus(RCC_FLAG_PINRST) != RESET)
  •      {
  •       AT32_LEDn_ON(LED4);
  •     }
  •      RCC_APB1PeriphClockCmd(RCC_APB1PERIPH_PWR, ENABLE);
  •      PWR_BackupAccessCtrl(ENABLE);
  •      ERTC_WaitForSynchro();
  •      ERTC_ClearFlag(ERTC_FLAG_ALAF);
  •      EXTI_ClearIntPendingBit(EXTI_Line17);
  •      ERTC_TimeShow();
  •      ERTC_AlarmShow();
  •     }
  •     EXTI_ClearIntPendingBit(EXTI_Line17);
  •     EXTI_InitStructure.EXTI_Line = EXTI_Line17;
  •     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  •     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  •     EXTI_InitStructure.EXTI_LineEnable = ENABLE;
  •     EXTI_Init(&EXTI_InitStructure);
  •     NVIC_InitStructure.NVIC_IRQChannel = ERTC_IRQn;
  •     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  •     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  •     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  •     NVIC_Init(&NVIC_InitStructure);
  •     OLED_Clear();
  •      OLED_ShowString(0,0,"20  -  -",16);
  •      OLED_ShowString(0,2,"  :  :",16);
  •     while (1)
  •     {
  •     ERTC_GetTimeValue(ERTC_Format_BIN, &ERTC_TimeStructure);
  •          ERTC_GetDateValue(ERTC_Format_BIN, &ERTC_DateStructure);
  •    if(temp != ERTC_TimeStructure.ERTC_Seconds)
  •     {
  •       temp = ERTC_TimeStructure.ERTC_Seconds;
  •      OLED_ShowNum(16,0,ERTC_DateStructure.ERTC_Year,2,16);
  •            OLED_ShowNum(40,0,ERTC_DateStructure.ERTC_Month,2,16);
  •            OLED_ShowNum(64,0,ERTC_DateStructure.ERTC_Date,2,16);
  •            OLED_ShowNum(0,2,ERTC_TimeStructure.ERTC_Hours,2,16);
  •            OLED_ShowNum(24,2,ERTC_TimeStructure.ERTC_Minutes,2,16);
  •            OLED_ShowNum(48,2,ERTC_TimeStructure.ERTC_Seconds,2,16);
  •          }
  •   }
  • }

 

最新回复

能否给个demo压缩包?  详情 回复 发表于 2023-9-10 22:46
点赞 关注
 
 

回复
举报

7007

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

断电重启之后,RTC的数据有没有丢失

点评

没有后备电池支持RTC的话肯定会丢失  详情 回复 发表于 2021-4-27 09:16
 
 
 

回复

1581

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
Jacktang 发表于 2021-4-27 08:58 断电重启之后,RTC的数据有没有丢失

没有后备电池支持RTC的话肯定会丢失

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 

能否给个demo压缩包?


 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 15

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表