ESP8266学习-内置网页配置(一)

1、写入一个网页到FLASH指定位置:

(1)找到可以放置网页的位置;扇区:4KBytes-0x001000

ESP8266-01:FLASH:25Q80=8Mbits=1MBytes=0x100000: 256扇区

eagle.flash.bin--------------------------------------------0x000000: 0扇区-----64KBytes

eagle.irom0text.bin--------------------------------------0x010000: 16扇区----944KBytes

esp_init_data_default_v05.bin-----------------------0x0FC000: 252扇区

blank.bin---------------------------------------------------0x0FE000: 254扇区

FLASH中前64K为系统程序1,紧接着是系统程序2,倒数4个扇区(16KBytes)中为系统参数区。用户可用区域在系统程序2与系统参数区中间部分,至于从何扇区开始,到何处结束,则由前后扇区内容决定。在ld->eagle.app.v6.ld中可以查看各区域设置的长度,其中最后一项是irom0_0_seg->len即为eagle.irom0text.bin的允许长度。由此可以计算出用户可用区域的起始结束地址

eagle.irom0text.bin---0x010000---0x06C000: 0x05C000

因此用户可用区域为: 0x06C000---0x0FC000: 576KBytes: 144扇区

(2)放入写好的网页,读取出来看看数据是否写入正确;

使用ESP8266烧写工具在指定位置放入一个WEB页面,利用OS_printf输出到串口助手查看。

新建一个login.html ;注意格式一定要是UTF-8,否则在页面开头有乱码。

<html>
<title>LOGIN</title>
<style>
.box{font-size:60px;width:500px;height:80px;}
.log{font-size:80px;width:400px;height:100px;}
.dx{font-size:60px}
</style>
<body>
<center>
<div class='dx'>
<form method='post' action='Login.cgi'>
<br>
登录WIFI设置界面
<br>
<br>
UserName:<input type='text' class='box' id='NAME' name='username'><br>
&nbsp;PassWord:<input type='text' class='box' id='PWD' name='password'><br>
<br>
<input type='submit' class='log' value='登录'>
</form>
<script>
document.getElementById('NAME').value='admin'
document.getElementById('PWD').value='admin'
</script>
</div>
</center>
</body>
</html>

在ESP8266测试代码中,读取出FLASH里的数据,

    char ch[1000];
    os_printf("login.page!\n");
    spi_flash_read(0x6C000, (uint32 *)&ch, 654);
    ch[655] = '\0';
    os_printf("%s", ch);
    os_printf("\n");

在串口助手中可以看到输出结果,如果文件格式不是UTF-8,则串口助手输出的中文就会是乱码。如果页面代码中有错误码,也能查出来。同时修改上面的数字大小也能测出页面包含的字节数。这个字节数会用于页面的发送。测试结果

phy ver: 1156_0, pp ver: 10.2

login.page!
<html>
<title>LOGIN</title>
<style>
.box{font-size:60px;width:500px;height:80px;}
.log{font-size:80px;width:400px;height:100px;}
.dx{font-size:60px}
</style>
<body>
<center>
<div class='dx'>
<form method='post' action='Login.cgi'>
<br>
登录WIFI设置界面
<br>
<br>
UserName:<input type='text' class='box' id='NAME' name='username'><br>
&nbsp;PassWord:<input type='text' class='box' id='PWD' name='password'><br>
<br>
<input type='submit' class='log' value='登录'>
</form>
<script>
document.getElementById('NAME').value='admin'
document.getElementById('PWD').value='admin'
</script>
</div>
</center>
</body>
</html>

SDK version:3.0.3(8427744)

可以看出数据没有问题,保证了在FLASH中的页面数据没有问题。

(3)找到ESP8266对get和host的处理函数,找到ESP8266如何处理get和post数据,并发送页面给客户端。

没写完,下一次继续。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值