龙空技术网

20.安卓端与开发板通信 openwrt入门经典教程

爱学习de小乌龟 133

前言:

此刻看官们对“telnet2003”大致比较着重,看官们都想要剖析一些“telnet2003”的相关知识。那么小编也在网上收集了一些对于“telnet2003””的相关资讯,希望大家能喜欢,咱们一起来学习一下吧!

20.安卓端与开发板通信

本实验目标

掌握 RT5350 串口 2 的使用方法

实现 Wi-Fi 串口

准备工作:

由于我们本实验使用到的是串口 2 ,所以必须在开发板上 P12 进行配置:

图 1 图 2 图 3

本实验我们使用第一个图的配置方法,即串口 2 给 wifi 核心板使用,在下一个实验中, 我们会使用安卓端通过 wifi 控制zigbee ,就需要用到第三个图的配置。

20.1 添加 ser2net 应用程序

在上一章中,我们成功的让驱动程序支持了串口 2 ,并且做了简单的测试。接下来, 我们就为串口 2 添加一个应用程序,从而实现 Wi-Fi 串口。实现过程非常简单,首先进 入 OpenWrt 系统源码,然后运行 make menuconfig 命令进行配置。

# cd /openwrt/trunk/

# make menuconfig

在弹出的配置菜单中,首先进入 Network ,如图所示。

然后选中 ser2net 这个选项,如果所示。

最后退出保存,再编译。

# make V=99

注意: 可能有同学 make menuconfig 之后没有 ser2net 这个选项,解决方法:

在 trunk 目录下,编辑 feeds.conf.default 文件,把 oldpackage 那行前面的#去掉,如图:

然后运行下面两个命令:

./scripts/feeds update -a

./scripts/feeds install –a

20.2 配置 Wi-Fi 串口

既然是 Wi-Fi 串口, 那么我们就可以理解为它由两部分组成, 一部分是网络编程器 的 TCP 服务器,用于接收客户端通过 Wi-Fi 传来的数据;另一部分就是串口,用于将 TCP 服务器接收到的数据通过串口发送出去。既然是 TCP 服务器,那么我们需要设置它的 IP 地址和端口号。既然是串口,那么我们需要设置它的波特率等参数。那么,这些参数,我们 怎么来设置呢?通过修改 ser2net.conf 这个配置文件来实现,位于开发板上的/etc 目录 下。将上面编译出来的固件,重新烧写到开发板上面,然后上电启动,进入/etc 目录。

# cd /etc

# vi ser2net.conf

我们打开 ser2net.conf 这个配置文件,再它的最下面,我们可以看到以下这些内容。

2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

#2002:raw:600:/dev/ttyS1:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS

2003:raw:5:/dev/ttyS2:9600

2004:raw:5:/dev/ttyS3:115200

2005:raw:5:/dev/ttyS4:9600

2006:raw:5:/dev/ttyS5:9600

2007:raw:5:/dev/ttyS6:9600 tw=tw1 tr=tr1

3001:telnet:0:/dev/ttyS0:19200 remctl banner1

3011:telnet:3:/dev/ttyS0:19200 banner2

#3002:telnet:0:/dev/ttyS1:9600

3003:telnet:0:/dev/ttyS2:9600 banner3

3003:telnet:0:/dev/ttyS2:9600 signature1 3004:telnet:0:/dev/ttyS3:115200

3005:telnet:0:/dev/ttyS4:9600

reboot

3006:telnet:0:/dev/ttyS5:9600 open1

3007:telnet:0:/dev/ttyS6:9600 close1 5001:rawlp:10:/dev/lp0

那么这些内容是什么意思呢?我们通过看 ser2net.conf 这个配置文件前面的说明注释 部分,可以知道,这些参数的格式如下:

# <TCP port>:<state>:<timeout>:<device>:<options>

<TCP port> :用于设置 TCP 服务器要监听的端口号;

<state> :用于设置 TCP 服务器的状态;

<timeout> :用于设置超时时间,如果设置为 0 ,表示不开启超时时间; <device> :用于选择使用哪个串口设备;

<options> :用于设置波特率、校验位等参数。

更多详细的介绍,就请大家看 ser2net.conf 这个配置文件前面的说明注释部分。那么, 如果我想让我们的 Wi-Fi 串口实现监听 8002 这个端口,然后通过串口 2 输出, 波特率 是 115200 ,应该怎么做呢?如果我们看懂了前面的内容, 就发现, 要实现这个功能非常 简单, 只需要在 ser2net.conf 这个配置中的最后面添加一行以下内容即可。

8002:raw:0:/dev/ttyS0:115200

最后保存退出,然后重启开发板,即可:

注意:我们出厂程序使用的端口是 33333,直接测试时请使用此端口。

20.3 测试 Wi-Fi 串口

通过前面的那么多的努力,我们终于把 Wi-Fi 串口这个系统给做好了,接下来就是测试。 1). 将开发板的串口 2 和电脑的串口连接起来,然后打开串口助手,设置好相应的串口。

图 查看串口信息

图 连接好串口 2 和调试串口

2). 启动 ser2net 软件,只需要在调试串口测,输入如下命令即可 : # ser2net 3). 手机连接上开发板发出的 WiFi 信号 OpenWrt。

4). 启动“网络调试助手”软件,这个安卓端的 apk 我们在本实验的”附加:安卓端”文件 夹中有提供。

注意: 我们出厂程序使用的端口是 33333,直接测试时请使用此端口。

20.4 开机自启动 Wi-Fi 串口

接下来,我们来实现开机自启动 Wi-Fi 串口。

首先打开开发板上的/etc 目录下的 rc.local 这个文件。

# vi /etc/rc.local

然后在 exit0 前面加入一条 ser2net ,详情如下。

# Put your custom commands here that should be executed once # the system init finished. By default this file does nothing.

ser2net

exit 0

保存退出,重启开发板,然后我们通过 ps 命令查看一下,发现 ser2net 已经启动好了。

注意: 发现好多人调试不通,原因大概有以下两个问题:

1.短路帽位置不对,请仔细看手册最上面的图 1

2.波特率设置不对,显示乱码或无输出

3.手机建立 tcp 客户端显示连接失败,一般是端口号不对,请用 ps 查下正确的端口号再连

接。还有一种就是 ser2net 没有启动,最好再做一次此实验,也可以用我们里面提供的 “ser2net.bin”固件测试。

标签: #telnet2003