源程序:Marvell 88W8801 WiFi模块创建或连接热点,并使用lwip2.1.2建立http服务器(20200208版)
本文讲解如何使88W8801创建出来的热点有网。具体的连接方式是:
电脑/手机 --------------------> (μAP) 88W8801 (STA) -------------------> 有网的无线路由器 ------------------> Internet
192.168.20.* 192.168.20.1 192.168.0.10 192.168.0.1 (公网IP)
即88W8801作为一个中转器,将电脑或手机的数据转发到有网的无线路由器上,用这种方式联网。
步骤一:在lwipopts.h中打开IP_FORWARD选项
// 允许在网络接口间转发数据包
// 88W8801的STA和uAP功能可以同时打开, 如果想要手机或电脑连上88W8801创建的热点后能上网, 就需要开启这两个选项
// 电脑/手机 <---> 88W8801 <---> 能上网的路由器 <---> Internet
// 选项开启后, 还需要在路由器上配置路由表才行, 因为此时88W8801也相当于一个路由器
#define IP_FORWARD 1
#define LWIP_IPV6_FORWARD 1
步骤二:配置88W8801所连的无线路由器,使88W8801能够通过DHCP获得固定的IP地址,如192.168.0.10
步骤三:配置路由表,将192.168.0.0/24和192.168.20.0/24这两个网络连在一起,经过的网络接口是192.168.0.10
为了方便测试,将电脑的本地连接禁用,让无线网络连接连接到88W8801创建的Hello World热点上
电脑此时能正常访问板子:
在电脑上用ipconfig命令可以看到电脑的IPv6地址:
在串口上,可以看到板子连接无线路由器时获得的IP地址:
电脑ping板子:
同时,电脑还能ping通百度:
这说明电脑已经能上网了。
手机也能连上热点并上网:
用网上的测速工具测一下速: