当前位置: 首页> 房产> 建材 > ESP32-C3模组上跑通OTA升级(10)

ESP32-C3模组上跑通OTA升级(10)

时间:2025/7/10 10:51:31来源:https://blog.csdn.net/phmatthaus/article/details/139360054 浏览次数:0次

接前一篇文章:ESP32-C3模组上跑通OTA升级(9)

八、程序调试过程中遇到的问题及解决

前边各篇文章主要讲解了OTA的基础知识以及示例代码,但这其实是(远远)不够的,真正要在ESP32-C3芯片上跑通(即正确运行起来)才算可以。

笔者使用的是advanced_https_ota这个示例项目,如下所示:

项目的主文件为main\advanced_https_ota_example.c。在调试过程中,遇到了不少坑,用了大半天时间逐一把这些坑填平了。下边将这些坑即遇到的问题按照先后顺序记录下来,以供后来者参考,使你们不再花大量时间和精力重复踩坑填坑。

1. No option for server verification is enabled in esp_http_client config问题

详细的问题log如下:

wifi_updfile_md5 is: 0e864846aa6f6146602a809b498f8c74
I (16536) Wi-Fi Module: HTTP_EVENT_DISCONNECTED
I (16576) Wi-Fi Module: OTA started
E (16576) esp_https_ota: No option for server verification is enabled in esp_http_client config.
E (16576) Wi-Fi Module: ESP HTTPS OTA Begin failed

之所以会出现这个问题,是因为笔者放置升级文件的服务器是https(即url为“https://……”),但是又暂时没有证书(很矛盾)。对应到具体代码上,是这样:

        esp_http_client_config_t config = {//.url = CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL,//.cert_pem = (char *)server_cert_pem_start,.timeout_ms = CONFIG_EXAMPLE_OTA_RECV_TIMEOUT,.keep_alive_enable = true,
//#ifdef CONFIG_EXAMPLE_SKIP_COMMON_NAME_CHECK.skip_cert_common_name_check = true,
//#endif};config.url = updfile_url;

以上代码片段中,本来“.cert_pem = (char *)server_cert_pem_start,”一行是打开的,例程中也给了一个证书:

但由于是要用自己的服务器升级,所以肯定不能用官方提供的ca_cert.pem这个证书。正常情况下,应该是自己的服务器也给一个证书,但目前暂时还没有(本来是想先不带证书调能省点事,结果反倒费事了)。因此,笔者在代码中注释掉了“.cert_pem = (char *)server_cert_pem_start,”那一行(如上代码所示)。结果编译是能编译通过,运行的时候就出现上述问题了。

针对这个问题咨询了乐鑫的技术支持人员,他们给出的建议是:如果用的是https server,https使用的是ssl协议,这里(指的上边的配置代码)就需要有相应的证书;如果用的是http server进行OTA,则需要开启http OTA相关配置。

乐鑫技术支持人员同时也给了一个参考文章:

ESP32 HTTP OTA test_skip server certificate cn fieldcheck-CSDN博客

这篇文章写得非常好!里边罗列了OTA升级遇到的诸多问题以及解决方法。针对于此问题,给出的解决方法如下:

笔者按照以上指导修改了自己的项目配置:

修改此配置之后,再次编译运行,果然这个错误就不再出现了,即问题解决了。

但是紧接着又出现了新的问题,如下图所示:

这个问题是由于固件版本号相同,因此检查不通过,不允许升级。这真是一波方平、一波又起。

这个错误又该如何解决呢?请看下回。

关键字:ESP32-C3模组上跑通OTA升级(10)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: