使用RT-Thread Studio DIY 迷你桌面时钟(三)| 获取NTP时间(at_device软件包 + netutils软件包)

1. 项目进度

桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下:

在上一篇博文中简单的介绍了RT-Thread Studio一站式工具,基于STM32L431RCT6这个芯片创建工程,并修改时钟为使用外部时钟。

使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建工程
使用RT-Thread Studio DIY 迷你桌面时钟(二)| 获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)

接下里我们开始添加at_device设备ESP8266,添加软件包,获取NTP时间。

2. 添加ESP8266设备驱动

2.1. 使能libc组件

使用at_device软件包之前,需要先开启libc组件:

2.2. 添加at_device软件包

本项目中使用的是ESP8266设备,其基于AT框架的驱动示例代码在at_device软件包中提供。

点击添加软件包按钮,搜索at_device,添加该软件包:

添加到工程设置之后,右键单击进入该软件包配置页面:

配置实际信息:

保存设备,软件会自动添加at_device软件包到工程中。

2.3. 开启lpuart1串口设备

在上一小节配置软件包的时候,设置的串口设备为lpuart1,但是目前系统中并没有设备lpuart1,需要手动在board.h文件中开启,开启方法在该文件的注释中已经说明,如图:

按照图中注释的说明,首先添加使用lpuart1的宏定义,开启串口:

接下来修改具体lpuart1串口的引脚配置:

接下来为了后续方便操作控制台,将sht3x的测试线程先注释掉:

然后编译整个项目,下载,查看串口输出:

可以看到有一个警告,提示 RT_SERIAL_RB_BUFSZ 的值不够用了,解决方案就是在那设置中加大该缓冲区的值:

重新编译,下载,在串口控制台中查看网络是否成功配置:

两条串口日志打印暂且没有影响,是因为使用lpuart的原因,如果换为使用普通uart,在完全相同的配置下,没有这两条信息。

2.4. 测试网络

再进行进一步的测试,确保网络正常能连接外网:

ifconfig		//使用该命令查看当前网卡配置
ping www.baidu.com	//使用该命令测试外网是否可以ping通

测试结果如下:

3. 添加NTP对时功能

3.1. 添加netutils工具软件包

netutils软件包中汇集了 RT-Thread 可用的全部网络小工具集合,包括NTP工具。

NTP 是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机时间的协议,RT-Thread 上的 NTP 客户端连接上网络后,可以获取当前 UTC 时间,并更新至 RTC 中。

打开配置文件,添加软件包,搜索NTP之后添加:

右击软件包,修改该软件包的配置:

开启NTP服务器配置即可:

3.2. 开启软件模拟RTC

因为NTP工具在获取到网络时间后,需要同步到本地RTC,所以需要开启本地模拟RTC功能:

开启之后保存配置,重新编译工程,下载,在串口控制台查看是否可以正常工作。

3.3. 测试NTP工作是否正常


接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。

发布了217 篇原创文章 · 获赞 575 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/Mculover666/article/details/104418075