rt_thread4.1.0版本,使用EC200S,用mqtt数据上报下发都没问题,开启NTP后,显示超时有时可以同步成功,有时不能,移植超时警告或者错误提示
查看更多
把mqtt启动延时几秒,避免两者竞争就可以了。
通常开启别的网络任务的时候,要先判断一下网络的连接状态,因为at组件入网比较慢,然后ec200模组上电10秒后才会进入ready状态,所以建议刚开始的时候先判断网络连接状态等待网络连接后在进行其他的网络相关的操作。
好的,谢谢
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
把at客户端线程优先级提高,高于网络应用线程,也会好些。
现在mqtt就是关着的,但是还是出现上面的问题
这是线程优先级,目前at_clnt优先级还是挺高的
网卡刚连上时会检测网络联通,这时是占用了一个socket,这时ntp也使用可能就会有冲突,所以ntp也需要网络连接之后延迟下再使用。
谢谢,现在发现问题了


我配置了3个NTP服务器,程序里面会循环3次,逐个发送NTP数据包,且中间没有延时,导致接收不到,实际上是4G模块有回复的,可能程序来不及处理才报错,在server_num ++;语句后面增加break;语句就解决了
或者加入500ms延时也可以
/ use the static default NTP server /
for (i = 0; i < NTP_SERVER_NUM; i++)
{
if (host_name_buf[i] == RT_NULL || strlen(host_name_buf[i]) == 0)
continue;