乐鑫技术交流
直播中

李娓仑

8年用户 1440经验值
私信 关注
[问答]

不修改menuconfig的话,有哪个API可以修改rtc时钟源么?

在使用deep_sleep_example_main的例程,定时60秒自动唤醒,做测试的时候发现:
1、可以使用menuconfig来配置时钟源,并且可以正常唤醒。
2、使用API (rtc_clk_slow_freq_set(RTC_SLOW_FREQ_32K_XTAL);)来设置时钟源的时候,一直不能唤醒。

不修改menuconfig的话,有哪个API可以修改rtc 时钟源么?
                                                                                                                                                                                                                        
               

回帖(1)

fansz

2024-6-14 17:16:50
在不修改menuconfig的情况下,您可以尝试使用以下API来修改RTC时钟源:

1. `rtc_clk_32k_native_src_set()`:设置32kHz时钟源为内部RC振荡器。
2. `rtc_clk_32k_xtal_src_set()`:设置32kHz时钟源为外部晶体振荡器。

首先,您需要确保您的硬件支持所需的时钟源。然后,您可以在代码中使用这些API来设置RTC时钟源。以下是一个示例:

```c
#include "esp32/rom/rtc.h"

void set_rtc_clock_source()
{
    // 设置32kHz时钟源为内部RC振荡器
    rtc_clk_32k_native_src_set();

    // 或者设置32kHz时钟源为外部晶体振荡器
    // rtc_clk_32k_xtal_src_set();
}
```

在deep_sleep_example_main例程中,您可以在初始化部分调用`set_rtc_clock_source()`函数来设置RTC时钟源。然后,您可以使用`rtc_clk_slow_freq_set(RTC_SLOW_FREQ_32K_XTAL);`来设置慢时钟频率。

请注意,如果您的硬件配置不支持所选的时钟源,可能会导致设备无法正常唤醒。在这种情况下,您可能需要检查硬件连接并确保使用正确的时钟源。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分