NUC980 跑 RT-Thread 通过 esp8266 联网

NUC980 是面向物联网应用,既然是物联网,肯定需要连上网络,手上的 NuMaker-RTU-NUC980 有有限网络模块,可以通过网线联网,环境不允许,不方便使用网线,这里尝试通过 ESP8266 连接网络

ESP8266

ESP8266 是乐鑫推出的 WIFI SOC,市场上可以找到很多基于 ESP8266 的 wifi 模块,价钱也很便宜,使用起来也很方便,可以 通过 uart 使用 AT 命令来使用,也可以通过乐鑫提供的 SDK 进行开发,这里使用 ESP8266-01S:

NUC980 跑 RT-Thread 通过 esp8266 联网

硬件连接

因为是使用 uart 跟 ESP8266 模块通讯,板子上需要有个可用的 uart,之前已经体验过了 uart,验证了板子上uart4 是可以用的:
NUC980 跑 RT-Thread 通过 esp8266 联网

NUC980 跑 RT-Thread 通过 esp8266 联网

NuMaker-RTU-NUC980 跟 ESP8266 模块连接如下:

NUC980 跑 RT-Thread 通过 esp8266 联网

RT-Thread AT 组件

RT-Thread 提供了 AT 组件,可以使用该组件直接把一些使用 AT 命令的模块使用起来,使用该组件不用自己去实现 ESP8266 驱动,打开 ENV 工具,执行 menuconfig 命令进行配置,启动 AT 组件及 AT 组件下的 ESP8266,如下:

NUC980 跑 RT-Thread 通过 esp8266 联网

首先设置下所使用的 WIFI 的 SSID 跟 password,然后选在所使用的 uart,这里使用 uart4,退出配置界面,然后执行 pkgs --update 下载 AT 组件,

NUC980 跑 RT-Thread 通过 esp8266 联网

执行 scons 进行编译并烧录测试,如下是启动时跟 AT 组件驱动 ESP8266 有关的信息:

NUC980 跑 RT-Thread 通过 esp8266 联网

使用 ifconfig 命令并使用 ping 命令测试能不能连接互联网:

NUC980 跑 RT-Thread 通过 esp8266 联网

问题

在测试的时候碰到个问题,如下:

NUC980 跑 RT-Thread 通过 esp8266 联网

困惑了我很久,有时候初始化 AT 组件也会出问题,一开始觉得有以下可能:

  • 会不会是 RT-Thread 的 AT 框架有问题呢?不稳定?网上搜了下,没有提到有这问题,也不应该,不稳地的软件应该不会就发不出来
  • 会不会是我的 ESP8266 模块的问题? 试了几个模块,也尝试了对模块的固件进行升级,问题也还在

后来我用 STM32试了下,相同的 ESP8266 模块,相同的 AT 组件,开机初始化很快,测试没有发现什么问题,非常的丝柔顺滑,断定应该是 NUC980 串口或者其他哪里有问题,后来发现配置中 uart4 默认是使用了 DMA ,我把 DMA去掉了:

NUC980 跑 RT-Thread 通过 esp8266 联网

就没出现问题了,开发初始化速度也快很多。

转载请注明出处:https://www.cnblogs.com/halin/

NUC980 跑 RT-Thread 通过 esp8266 联网

上一篇:centos7以yum方式安装zabbix-agent客户端服务


下一篇:C# 获取内存和CPU信息的源码