ESP32 SNTP时间同步失败问题记录

调试ESP32 SNTP时间同步官方例程时,遇到轮询15次仍然不成功的问题,问题是偶现的,大概20%左右的概率出现。

原因:推测是服务器访问不稳定导致

解决办法:设置多个服务器,并且减少服务器轮询的时间(基于esp_idf_5.0.6,其他版本可能有细微的差异)

1、设置最大NTP服务器数量为4

设置路径 sdkconfig:Component config -> LWIP ->SNTP -> Maximum number of NTP servers

2、通过sntp_setservername设置多个服务器ip

    sntp_setservername(0, "210.72.145.44"); // 国家授时中心服务器 IP 地址
    sntp_setservername(1, "ntp1.aliyun.com"); //阿里云ntp1服务
    sntp_setservername(2, "pool.ntp.org");
    sntp_setservername(3, "1.cn.pool.ntp.org");

3、修改轮询服务器的时间,从15s改成1s

修改路径:esp_idf_5.0.6\esp-idf-v5.0.6\components\lwip\lwip\src\include\lwip\apps\sntp_opts.h lin 164

修改完成后重新编译烧录就没再复现问题了。(如果没生效,退出eclipse后重新打开编译,还不行的话直接删除项目的整个build文件夹,重新编译)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值