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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...