GD32 RTC时钟配置外部低速时钟注意点

在按照GD32F350官方demo板提供的历程做RTC时,发现外部低速时钟不能用,用内部低速时钟不设置时间时,大多数时间都不正常,现象表现为时、分、秒走得很快,日期能加一天,经过调试,原来是开发板提供的例程有误,

void rtc_pre_config(void)
{
    /* enable access to RTC registers in backup domain */
    rcu_periph_clock_enable(RCU_PMU);
    pmu_backup_write_enable();

    #if defined (RTC_CLOCK_SOURCE_IRC40K)    
          /* enable the IRC40K oscillator */
          rcu_osci_on(RCU_IRC40K);
          /* wait till IRC40K is ready */
          rcu_osci_stab_wait(RCU_IRC40K);
          /* select the RTC clock source */
          rcu_rtc_clock_config(RCU_RTCSRC_IRC40K);
  
          prescaler_s = 0x18F;
          prescaler_a = 0x63;
    #elif defined (RTC_CLOCK_SOURCE_LXTAL)
           /* enable the IRC40K oscillator */
          rcu_osci_on(RCU_LXTAL);
          /* wait till IRC40K is ready */
          rcu_osci_stab_wait(RCU_LXTAL);
          /* select the RTC clock source */
          rcu_rtc_clock_config(RCU_LXTAL);
          
          prescaler_s = 0xFF;
          prescaler_a = 0x7F;

 rcu_rtc_clock_config(RCU_LXTAL);中的RCU_LXTAL这个参数是错的,应该使用RCU_RTCSRC_LXTAL

设置完成后,将纽扣电池取下,重新安装上即可

 

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
### 回答1: STM32CubeMX是一个用于STM32微控制器的图形化配置工具,可以帮助用户快速配置各种外设和时钟。在STM32CubeMX中配置RTC时钟需要以下步骤: 1. 打开STM32CubeMX软件,选择对应的STM32微控制器型号。 2. 在“时钟配置”选项卡中,勾选“RTC时钟”选项。 3. 在“RTC时钟”选项卡中,选择RTC时钟源和分频系数。常用的RTC时钟源有LSI和LSE,分频系数可以根据需要进行配置。 4. 击“生成代码”按钮,生成相应的代码。 5. 在生成的代码中,可以找到RTC时钟初始化函数和RTC时钟中断处理函数,根据需要进行修改和调用。 以上就是STM32CubeMX的RTC时钟配置的基本步骤。需要注意的是,RTC时钟配置需要根据具体的应用场景进行调整,以保证系统的稳定性和可靠性。 ### 回答2: STM32CubeMX是STMicroelectronics公司推出的一款自动生成STM32系列微控制器程序框架的软件工具,支持多种嵌入式开发环境,如Keil MDK、IAR、GCCR等。其中,RTC时钟配置是STM32CubeMX中的一个重要功能,在嵌入式系统中常被使用。 首先,RTC(Real Time Clock)是一种能够在STM32微控制器中存储和计算时间信息的电路模块,通常用于时钟管理、计时、定时等应用。RTC模块工作时需要使用独立的振荡器,因此使用RTC需要单独配置时钟源。下面是关于STM32CubeMX中RTC时钟配置的详细步骤: 1.初始化RTC时钟配置 打开STM32CubeMX,进入“Clock Configuration”页面,选择“RTC时钟配置选项,勾选“LSE”以使RTC时钟使用外部低速振荡器(LSE),勾选“RTC输出来源”以选择RTC时钟输出源(可选)。 2.配置LSE振荡器 在“Pinout & Configuration”页面中,选中“Crystal OSC”菜单,在振荡器引脚配置区域中,选择使用外部低速振荡器(LSE)并设置其频率(例如32.768kHz)。此处需要注意,LSE型号和其供应商要与使用的开发板相对应,同时需要进行测试以确保振荡器正常工作。 3.启用RTC时钟 在“Clock Configuration”页面中,勾选“RTC时钟输出开启”选项即可启用RTC时钟功能,同时选择“RTC输出来源”以选择其时钟源。 4.生成代码 当完成以上配置后,单击“GENERATE CODE”按钮生成代码,STM32CubeMX会自动生成用于配置RTC时钟的C代码,同时将其添加到启动文件中。 上述过程中,还可以对RTC时钟进行其他配置,如时钟中断、闹钟配置等。在STM32CubeMX中,RTC时钟配置非常方便快捷,使得我们能够在嵌入式系统中高效地管理时间,实现定时、计时等功能。同时,还要注意振荡器的选择和质量,以保证RTC时钟的准确性和可靠性。 ### 回答3: STM32CubeMX是一款集成开发环境,可以帮助嵌入式系统开发人员快速搭建STM32微控制器的开发环境,方便用户快速配置微控制器的外设、系统时钟等。 在STM32CubeMX中,RTC(实时时钟)是一个重要的外设。RTC是一种独立的时间计数器,常用于需要精确时间计量的嵌入式应用。在STM32系列微控制器中,RTC可以使用外部低速晶振提供时钟信号,可以提供最大到210年的时间计数。 RTC时钟配置主要包括以下几个步骤: 1. 设置外部低速晶振:在STM32CubeMX中,需要在RCC(Reset and Clock Control)中设置RTC外部时钟源。用户需要先确定自己所用的外部低速晶振的频率,然后选择相应的外部时钟源。在选择完毕后,需要击“Clock Configuration”按钮来确认设置。 2. 配置RTC时钟:在STM32CubeMX中,RTC时钟可以和主系统时钟分离,因此需要在RTC中进行配置。用户需要在RTC Configuration中选择“Clock Source”为“LSE”(即外部低速晶振),并设置预分频器,从而得到具体的RTC时钟频率。在确认完毕后,需要击“Clock Configuration”按钮来保存设置。 3. 生成代码:在配置完毕后,用户需要击“Generate Code”来生成相应的代码。STM32CubeMX会自动生成相应的初始化代码,用户只需要将其复制到自己的工程中即可。 4. 初始化RTC:在自己的工程中,用户需要调用HAL_RTC_Init()函数来初始化RTC。在初始化过程中,STM32CubeMX会设置RTC时钟源和预分频器,从而保证RTC能够正常工作。 以上就是STM32CubeMX中RTC时钟配置的步骤,用户可以根据自己的实际情况进行修改。在RTC时钟配置过程中,需要特别注意时钟源的选择和预分频器的设置,这一对于RTC的正常工作非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值