ESP32改变时钟频率(C)

ESP32改变时钟频率(C),c,clock,esp32,C,Clock,Esp32,我正在用C编写一个ESP32(使用ESP32的工具链),我正在尝试更改我的ESP32的时钟频率,但我很不确定我是否做对了(我使用了文档,但我没有找到任何代码示例)。我认为我已经把程序部分做好了,但我认为它仍然不起作用。有没有办法计算出设定的时钟频率? 我也不确定文档中的这一部分: “ESP_PM_CPU_FREQ_MAX 要求CPU频率为通过esp_pm_configure设置的最大值。参数未使用,应设置为0。“ 最后一部分是否意味着我不应该使用这款makro 最后但并非最不重要的一点是,我不明

我正在用C编写一个ESP32(使用ESP32的工具链),我正在尝试更改我的ESP32的时钟频率,但我很不确定我是否做对了(我使用了文档,但我没有找到任何代码示例)。我认为我已经把程序部分做好了,但我认为它仍然不起作用。有没有办法计算出设定的时钟频率? 我也不确定文档中的这一部分: “ESP_PM_CPU_FREQ_MAX 要求CPU频率为通过esp_pm_configure设置的最大值。参数未使用,应设置为0。“ 最后一部分是否意味着我不应该使用这款makro

最后但并非最不重要的一点是,我不明白是否必须更改sdkconfig,或者是否有一种方法可以在C中完成所有操作

我必须衡量一个项目的时间在ns地区,因此我需要esp32的最大性能

代码:

以及主要功能的相关部分:

#define MAX_FREQUENCY 240
#define MIN_FREQUENCY 40
#define DISABLE_SLEEP 0
  init_clock(MAX_FREQUENCY, MIN_FREQUENCY, DISABLE_SLEEP, ESP_PM_CPU_FREQ_MAX, ESP_PM_CPU_FREQ_MAX,
             "measure mode", pointer_config_clock, &handle);
  esp_err_t status_acquire = esp_pm_lock_acquire(handle);

请编辑您的问题并发布代码。请看:抱歉,我添加了它。只是一个猜测:一个和的网络搜索:
max\u-freq\u-mhz-min\u-freq\u-mhz-light\u-sleep\u-enable
产生了其他东西:看看:
ESP\u-pmu-CPU\u-freq\u-max
等。你已经在使用它了,但是:
ESP\u-pmu-APB\u-freq\u-max
呢?该页面还使用
esp\u pm\u configure
功能。在[您的]
main
中,如何设置指针配置时钟。它是否指向全局(即,任何未设置的字段都应归零)。也许,使用
memset(ptr,0,sizeof(esp_pm_config_esp32_t))当然可以。但是,从网络搜索中,一个可能的教程:注意,它循环等待频率的改变。非常感谢!现在它起作用了。gitlab的例子非常有用。问题只是我错过了一个while循环来检查是否达到了新的频率(因为我忽略了改变频率需要一点时间)。请编辑您的问题并发布代码。请看:抱歉,我添加了它。只是一个猜测:一个和的网络搜索:
max\u-freq\u-mhz-min\u-freq\u-mhz-light\u-sleep\u-enable
产生了其他东西:看看:
ESP\u-pmu-CPU\u-freq\u-max
等。你已经在使用它了,但是:
ESP\u-pmu-APB\u-freq\u-max
呢?该页面还使用
esp\u pm\u configure
功能。在[您的]
main
中,如何设置指针配置时钟。它是否指向全局(即,任何未设置的字段都应归零)。也许,使用
memset(ptr,0,sizeof(esp_pm_config_esp32_t))当然可以。但是,从网络搜索中,一个可能的教程:注意,它循环等待频率的改变。非常感谢!现在它起作用了。gitlab的例子非常有用。问题只是我错过了一个while循环来检查是否达到了新的频率(因为我忽略了改变频率需要一点时间)。
#define MAX_FREQUENCY 240
#define MIN_FREQUENCY 40
#define DISABLE_SLEEP 0
  init_clock(MAX_FREQUENCY, MIN_FREQUENCY, DISABLE_SLEEP, ESP_PM_CPU_FREQ_MAX, ESP_PM_CPU_FREQ_MAX,
             "measure mode", pointer_config_clock, &handle);
  esp_err_t status_acquire = esp_pm_lock_acquire(handle);