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』。