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

news/2024/11/18 14:50:28/

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数据,并发送页面给客户端。

没写完,下一次继续。


http://www.ppmy.cn/news/508400.html

相关文章

iOS:苹果企业证书通过网页分发安装app(PP助手方式)

本文来自转载&#xff0c;原文地址&#xff1a;http://blog.sina.com.cn/s/blog_6afb7d800101fa16.html &#xff08;这个网址也有类似介绍&#xff1a;http://www.cnblogs.com/beginor/archive/2013/01/25/2877200.html&#xff09; 苹果的企业级证书发布的应用&#xff0c;是…

python(10):批量修改文件名

文章目录 1. 使用Python的字符串操作来去除文件名高位的多余零说明代码示例 2. 将文件夹中的文件重命名为递增的数字加上原始文件名的后缀代码运行前后&#xff1a; 1. 使用Python的字符串操作来去除文件名高位的多余零 说明 一个目录下的文件名是6位数字序号加上后缀的格式&…

华硕fx80无法调节亮度

百分之80是驱动的问题当系统更新之后安装上最新的驱动后集成显卡的的菜单就会消失也就是 inter超核心控制面板 首先要下载最新的驱动 在官网下载对应的显卡驱动解压之后安装就可以

关于华硕飞行堡垒系列无法使用扇热小风扇的问题

文章驱动下载链接&#xff1a;被和谐了&#xff0c;私信我发链接 华硕飞行堡垒hotkey资源-CSDN文库 华硕飞行堡垒系列的小风扇驱动不知道难倒了多少人&#xff0c;亲自测试&#xff0c;华硕飞行堡垒5&#xff08;FX80GE&#xff09;可用

ubuntu16.04无法使用wifi ASUS fx80g

新安装的ubuntu16.04并没有wifi驱动 首先查看网卡类型&#xff1a; lspci 其中 03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter 是我的无线网卡信息 安装依赖&#xff1a; sudo apt-get install --reinst…

python plc fx5u_三菱PLC FX5U系列模块型号对照一览表

三菱PLC FX5U系列模块型号一览表 FX5-40SSC-S FX5U系列 简易运动控制,4 轴定位(对应SSCNET III/H) FX5-80SSC-S FX5U系列 简易运动控制,8 轴定位(对应SSCNET III/H) FX5-20PG-P 2pt 定位模块 FX5-CCL-MS FX5U系列 CC-LINK IE Field 主站模块 FX5-CCLIEF FX5U系列 CC-LINK IE …

三菱PLC FX3GA系列 FNC80 RS 串行通信

一边学习&#xff0c;一边记录 &#xff08;1&#xff09;指令FNC 80 - RS 串行数据传送 [无协议通信] ①RS-232C或RS-485串行通信口(仅通道1)进行无协议通信&#xff0c;来执行数据发送和接收的指令&#xff1b; ②指令格式&#xff1a;RS [S m D n]&#xff1b; ③操作数定义…

Matlab x2fx函数

对于这个函数&#xff0c;感觉基本上不怎么用的&#xff0c;相关介绍的资料也非常少&#xff0c;今天用了一天的时间&#xff0c;算是明白了它到底是干啥的。 首先&#xff0c;让我们看下help文档中的解释&#xff1a; x2fx()*函数语法如下: D x2fx(X,model) D x2fx(X,mod…