ESP32更改时钟频率C

问题描述

我正在用C编程ESP32(使用ESP32的工具链),并且尝试更改ESP32的时钟频率,但是我不确定自己是否做得正确(我使用了文档{ 3}},但我没有找到任何代码示例。我认为我已经正确完成了程序部分,但我仍然认为它不起作用。有没有办法弄清楚设置的时钟频率? 我也不确定文档中的这一部分: “ ESP_PM_cpu_FREQ_MAX 要求cpu频率为通过esp_pm_configure设置的最大值。参数未使用,应设置为0。” 最后一部分是否意味着我不应该使用此万能相机?

最后但并非最不重要的一点是,我不明白是否必须更改sdkconfig或是否可以用C做所有事情?

我必须测量ns范围内的项目时间,因此我需要esp32的最佳性能

代码

internal class PricesMapping : ClassMapping<PriceEntity>
    {
        public PricesMapping()
        {
            Table("Prices");

            ComposedId(m =>
            {
                m.ManyToOne(x => x.PriceBlock,map =>
                {
                    map.Column("PriceBlockId");
                });
                m.Property(x => x.CurrencyCode);
            });

            Property(x => x.Value,map => map.Column("Price"));
        }
    }

与主要功能的相关部分:

// ____________________________________________________________________________
esp_pm_config_esp32_t config_clock_struct;

// ____________________________________________________________________________
esp_pm_config_esp32_t* pointer_config_clock = &config_clock_struct;

// ____________________________________________________________________________
esp_pm_lock_handle_t handle;
void config_clock(int max_cpu_freq,int min_cpu_freq,bool light_sleep_enable,esp_pm_config_esp32_t* pointer_config_clock) {
  pointer_config_clock->max_freq_mhz = max_cpu_freq;
  pointer_config_clock->min_freq_mhz = min_cpu_freq;
  pointer_config_clock->light_sleep_enable = light_sleep_enable;
  esp_err_t status = esp_pm_configure(pointer_config_clock);
  if (status == ESP_OK) {
    return;
  } else if (status == ESP_ERR_INVALID_ARG) {
    printf("Error %d: Configuration values aren't correct.",status);
    exit(1);
  } else if (status == ESP_ERR_NOT_SUPPORTED) {
    printf("Error %d: Combination of values aren't supported or CONfig_PM_ENABLE isn't enabled in sdkconfig.",status);
    exit(1);
  }
}

// ____________________________________________________________________________
void init_clock(int max_cpu_freq,esp_pm_lock_type_t lock_type,int arg,const char* name,esp_pm_config_esp32_t* pointer_config_clock,esp_pm_lock_handle_t* out_handle) {
  config_clock(max_cpu_freq,min_cpu_freq,light_sleep_enable,pointer_config_clock);
  esp_err_t status = esp_pm_lock_create(lock_type,arg,name,out_handle);
  if (status == ESP_OK) {
  return;
  } else if (status == ESP_ERR_NO_MEM) {
    printf("Error %d: Struct can't allocated.",status);
  } else if (status == ESP_ERR_INVALID_ARG) {
    printf("Error: %d: Invalid arguments.",status);
  } else if(ESP_ERR_NOT_SUPPORTED == status) {
    printf("Error %d: config pm is not enabled in sdkconfig.",status);
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)