[RISC-V MCU 应用开发] 【RISC-V MCU CH32V103测评】RTC电子时钟

[复制链接]
 楼主| jinglixixi 发表于 2020-11-5 23:21 | 显示全部楼层 |阅读模式
在CH32V103的内部设置有RTC计时器,将它与OLED屏结合,就可构成一个RTC电子时钟。
实现电子时钟的程序十分简单,其程序代码如下:
  1. int main(void)
  2. {
  3. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  4. Delay_Init();
  5. RTC_Init();
  6. GPIO_Toggle_INIT();
  7. OLED_Init();
  8. OLED_Clear();
  9. OLED_ShowString(10,0,"CH32V103",16);
  10. OLED_ShowString(10,2,"RTC TEST",16);
  11. OLED_ShowString(10,6,"  :   :",16);
  12. while(1)
  13. {
  14. Delay_Ms(500);
  15. RTC_Get();
  16. OLED_ShowNum(10,6,calendar.hour,2,16);
  17. OLED_ShowNum(40,6,calendar.min,2,16);
  18. OLED_ShowNum(70,6,calendar.sec,2,16);
  19. }
  20. }

相应的RTC初始化函数为:
  1. u8 RTC_Init(void)
  2. {
  3. u8 temp=0;
  4. RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);      
  5. PWR_BackupAccessCmd(ENABLE);
  6. if(BKP_ReadBackupRegister(BKP_DR1) != 0xA1A1)
  7. {                                 
  8. BKP_DeInit();  
  9. RCC_LSEConfig(RCC_LSE_ON);      
  10. while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET&&temp<250)     
  11. {
  12. temp++;
  13. Delay_Ms(20);
  14. }
  15. if(temp>=255)return 1;
  16. RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);               
  17. RCC_RTCCLKCmd(ENABLE);   
  18. RTC_WaitForLastTask();
  19. RTC_WaitForSynchro();           
  20. RTC_ITConfig(RTC_IT_SEC, ENABLE);
  21. RTC_WaitForLastTask();
  22. RTC_EnterConfigMode();
  23. RTC_SetPrescaler(32767);
  24. RTC_WaitForLastTask();
  25. RTC_Set(2020,11,8,13,58,55); /* Setup Time */   
  26. RTC_ExitConfigMode();
  27. BKP_WriteBackupRegister(BKP_DR1, 0XA1A1);   
  28. }
  29. else
  30. {
  31. RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);   
  32. PWR_WakeUpPinCmd(DISABLE);
  33. RTC_WaitForSynchro();
  34. RTC_ITConfig(RTC_IT_SEC, ENABLE);
  35. RTC_WaitForLastTask();
  36. }
  37. RTC_NVIC_Config();
  38. RTC_Get();
  39. return 0;
  40. }

经程序编译下载后,其运行效果如图所示。
1.jpg
                              
RTC电子时钟
zeshoufx 发表于 2020-11-6 08:38 | 显示全部楼层
谢谢分享【RTC电子时钟】
 楼主| jinglixixi 发表于 2020-11-6 09:00 | 显示全部楼层
zeshoufx 发表于 2020-11-6 08:38
谢谢分享【RTC电子时钟】

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

本版积分规则

518

主题

2933

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部

518

主题

2933

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部