e2studio R7FA6M5 卡死 rtc 需要如何配置时钟

如题在新建工程的时候,如果自己设计的板子rtc 没有外部晶振,软件debug运行在这里就会卡死

cpp 复制代码
R_RTC->RCR2_b.RESET = 1;

FSP_HARDWARE_REGISTER_WAIT(R_RTC->RCR2_b.RESET, 0);

我隐约感觉到时rtc时钟问题,所以在e2studio 里打开 configuration.xml stacks 添加 timers 添加rtc,就可以跳过这代码。正常运行新建代码。

当然我也咨询ai 如下是ai回复

问题根因先说结论:你这段代码卡死,是因为 RTC 没有时钟源在跑

R_RTC->RCR2_b.RESET = 1 是一条"软件复位"指令,硬件复位完成后会自动清 0。但 RTC 复位动作必须在 RTC 时钟源工作 的前提下才能完成。RA6M5 的 RTC 时钟源默认选择是副时钟(外部 32.768kHz 晶振) ,如果你没有先使能并等待副时钟稳定(或者板子上根本没焊晶振),RESET 位就永远不会清 0,FSP_HARDWARE_REGISTER_WAIT 是死循环(无超时),于是卡死。

推荐做法:用 FSP 配置,不要手写寄存器

在 e2studio 里打开 configuration.xml,做两处配置:

1. Clocks 页 ------ 开启副时钟振荡器

  • Sub-Clock Oscillator (SOSC) → Enabled
  • Sub-Clock Oscillator Frequency → 32768
  • 驱动能力 Drive Capability 按你的晶振负载选,一般选 Standard

这样生成代码后,system_init 里的 R_CGC_SystemClockSet() 会帮你开副时钟并等待稳定,进 main 时 SOSC 已经跑起来了。

2. Stacks 页 ------ 添加 r_rtc 模块

  • Add → Realtime Clock (r_rtc)
  • 属性里 Clock Source → Sub Clock(有晶振时)
  • Operating Mode → Calendar
  • Hour Format → 按需 24 Hour / 12 Hour
  • 按需开 Alarm / Periodic 中断

Generate Project Content 后,代码里直接:

c

复制代码
R_RTC_Open(&g_rtc0_ctrl, &g_rtc0_cfg);   // 内部就做了:开副时钟→RESET=1→等清0→配置寄存器
R_RTC_CalendarTimeSet(&g_rtc0_ctrl, &current_time);
R_RTC_Start(&g_rtc0_ctrl);

不要再手写 RCR2。FSP 驱动里已经正确实现了完整初始化序列。

相关推荐
天空'之城7 小时前
单片机基础核心知识点汇总(三十三)
数据库·单片机·嵌入式硬件
单片机仿真设计10 小时前
基于 STM32 的家庭环境监测与火灾报警灭火系统(Proteus 仿真)
stm32·单片机·嵌入式硬件·proteus·毕设
辰域电子11 小时前
STM32项目开源:智能万年历/智能闹钟设计(代码+原理图+仿真)
stm32·单片机·嵌入式硬件·开源·proteus
一条破秋裤12 小时前
STM32F103 RCC 第一层复习:时钟树、外设时钟与重复测试
stm32·单片机·嵌入式硬件
smartpi_ai13 小时前
原理图上的 1.2V 是输入还是输出?蜂鸟 M 裸芯供电架构、CORE 滤波设计与外围器件三规矩
单片机·嵌入式硬件·架构
一条破秋裤14 小时前
STM32 单片机两层学习规划
stm32·单片机·学习
2601_9507906815 小时前
国产单片机厂家推荐:用统一回复协议筛选候选
单片机·嵌入式硬件
天空'之城15 小时前
单片机基础核心知识点汇总(三十二)
单片机·嵌入式硬件
雨田言炎16 小时前
2026/09/09 STM32F103复习(三)
stm32·单片机·嵌入式硬件
Jackson_GJH16 小时前
模拟 IIC 逻辑的深度解构
stm32·单片机·嵌入式硬件