完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我做了大量的测试,发现电源管理锁在ESP32中不生效,但是在ESP32S3中可以正常工作,我测试了IDF最新的代码(release/v5.1, release/v4.4)都是这样的情况。
我希望这不是IDF的Bug,但是我实在无法解决,请大佬们帮我看下,下面是我的代码: // 启动时 ```cpp void app_main() { esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); #if CONFIG_PM_ENABLE # if CONFIG_IDF_TARGET_ESP32 esp_pm_config_esp32_t pm_config = { # elif CONFIG_IDF_TARGET_ESP32S2 esp_pm_config_esp32s2_t pm_config = { # elif CONFIG_IDF_TARGET_ESP32C3 esp_pm_config_esp32c3_t pm_config = { # elif CONFIG_IDF_TARGET_ESP32S3 esp_pm_config_esp32s3_t pm_config = { # endif .max_freq_mhz = CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ, .min_freq_mhz = 80, # if CONFIG_FREERTOS_USE_tiCKLESS_IDLE .light_sleep_enable = false # endif }; ESP_ERROR_CHECK(esp_pm_configure(&pm_config)); #endif } ``` 业务中加锁: ``` void somewhere(void) { static esp_pm_lock_handle_t rmt_send_task_pm_lock; ESP_ERROR_CHECK(esp_pm_lock_create(ESP_PM_CPU_FREQ_MAX, 0, "rmt_send_task", &rmt_send_task_pm_lock)); ESP_ERROR_CHECK(esp_pm_lock_acquire(rmt_send_task_pm_lock)); // ... 业务代码 ESP_ERROR_CHECK(esp_pm_lock_release(rmt_send_task_pm_lock)); } ``` |
|
相关推荐
1个回答
|
|
|
根据您提供的信息,您在ESP32上使用电源管理锁时遇到了问题,但在ESP32S3上可以正常工作。在分析问题之前,我们需要了解ESP32和ESP32S3之间的一些差异。ESP32S3是ESP32的升级版,具有更高的性能和更多的功能。因此,在某些情况下,ESP32S3可能具有更好的电源管理功能。
以下是一些可能导致电源管理锁在ESP32上不生效的原因: 1. **硬件差异**:ESP32和ESP32S3在硬件上可能存在差异,这可能导致电源管理锁在ESP32上不生效。例如,ESP32S3可能具有更好的电源管理硬件支持。 2. **软件版本**:您提到已经测试了IDF的release/v5.1和release/v4.4版本。尽管这些版本在ESP32S3上可以正常工作,但可能在ESP32上存在一些兼容性问题。建议您尝试使用其他版本的IDF,或者查看是否有针对ESP32的特定补丁或修复。 3. **电源管理锁的实现**:ESP32和ESP32S3可能使用不同的电源管理锁实现。这可能导致在ESP32上使用电源管理锁时出现问题。您可以查看ESP32和ESP32S3的电源管理锁实现,以确定是否存在差异。 4. **代码问题**:您提供的代码片段不完整,因此无法确定是否存在代码问题。请确保您的代码正确实现了电源管理锁的功能,并且没有遗漏任何关键步骤。 5. **其他因素**:可能还有其他因素导致电源管理锁在ESP32上不生效,例如电源供应不稳定、外部干扰等。 为了解决这个问题,您可以尝试以下方法: 1. **检查硬件**:确保您的ESP32硬件没有损坏或存在问题。 2. **更新软件**:尝试使用不同版本的IDF,或者查找是否有针对ESP32的特定补丁或修复。 3. **查看文档**:查阅ESP32和ESP32S3的官方文档,了解它们在电源管理方面的具体差异。 4. **寻求社区帮助**:在ESP32和ESP-IDF的社区论坛上寻求帮助,看看是否有其他开发者遇到了类似的问题,并了解他们是如何解决的。 5. **联系技术支持**:如果问题仍然无法解决,您可以联系ESP32的技术支持,向他们报告这个问题并寻求帮助。 希望这些建议能帮助您找到问题的原因并解决它。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
461 浏览 0 评论
982 浏览 0 评论
1702 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1358 浏览 1 评论
1249 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1274浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
942浏览 3评论
2372浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2560浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1067浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 10:54 , Processed in 0.720442 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1086
