问题描述
我正在用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 (将#修改为@)