搜索
bottom↓
回复: 102

[抛砖引玉] stm32f103 + w5500 实现网页配置

  [复制链接]

出0入0汤圆

发表于 2014-10-21 10:30:33 | 显示全部楼层 |阅读模式
本帖最后由 傻彪5213 于 2014-10-21 11:04 编辑

最近一个网关项目需要用到网页配置功能,简单的讲就是基于stm32做一个www服务器,网络接口芯片选用的w5500,用户输入网关的IP地址便可配置一些信息。

网上找了好多资料,发现了用stm32f103 + w5500实现的一个例子,看上去比较简单。偷点懒,修改修改看看效果... 高手请飘过...

不废话了,直接上图。先看看Chrome下的显示效果:


IE11浏览器下的效果:


效果还可以吧?
其他浏览器暂时没有测试~~下面上程序,工程是用IAR 5.41版本建的,大家凑合看。编译后bin大小为19.2KB。
注意网页保存在webpage.h里面。
这个程序用了些javascript,还用到的了JSON,大家结合单片机程序看^^有什么好的想法我们再交流。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-10-21 10:37:09 | 显示全部楼层
mark!请问楼主webpahe.h需要用工具转为 数组文件麽?

出0入0汤圆

 楼主| 发表于 2014-10-21 10:44:25 | 显示全部楼层
本帖最后由 傻彪5213 于 2014-10-21 10:45 编辑

不需要任何工具的,webpage.h里面就是html

出0入0汤圆

发表于 2014-10-21 10:50:15 | 显示全部楼层
傻彪5213 发表于 2014-10-21 10:44
不需要任何工具的,webpage.h里面就是html

  怎么没有找到w5500.js?

出0入0汤圆

 楼主| 发表于 2014-10-21 10:50:57 | 显示全部楼层
embeddev_1 发表于 2014-10-21 10:50
怎么没有找到w5500.js?

w5100.js是httputil.c中代码生成的...

出0入8汤圆

发表于 2014-10-21 10:56:48 | 显示全部楼层
好东西啊    收藏

出0入0汤圆

发表于 2014-10-21 11:22:36 | 显示全部楼层
  在我的板子上面运行了一下,都可以ping 192.168.1.101通,但是打不开网页,也不知道哪里有问题!

出0入0汤圆

 楼主| 发表于 2014-10-21 11:25:49 | 显示全部楼层
embeddev_1 发表于 2014-10-21 11:22
在我的板子上面运行了一下,都可以ping 192.168.1.101通,但是打不开网页,也不知道哪里有问题!  ...

能ping通一般就能打开的,你的是什么板子啊?

出0入0汤圆

发表于 2014-10-21 11:27:11 | 显示全部楼层
傻彪5213 发表于 2014-10-21 11:25
能ping通一般就能打开的,你的是什么板子啊?

w5500+stm32

出0入0汤圆

发表于 2014-10-21 11:32:46 | 显示全部楼层
本帖最后由 embeddev_1 于 2014-10-21 11:35 编辑
傻彪5213 发表于 2014-10-21 11:25
能ping通一般就能打开的,你的是什么板子啊?


  楼主!我测出问题来了,在IE里面可以打开,在360浏览器里面打不开,有时间查下是哪里的bug吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-10-21 11:34:59 | 显示全部楼层

先确认下ping的是是不是w5500,以防万一
再确认下打开网页时link灯是否正常

出0入0汤圆

发表于 2014-10-21 11:36:32 | 显示全部楼层
傻彪5213 发表于 2014-10-21 11:34
先确认下ping的是是不是w5500,以防万一
再确认下打开网页时link灯是否正常 ...

  楼主看下我上面的截图,在360浏览器打不开,ie可以!

出0入0汤圆

 楼主| 发表于 2014-10-21 11:37:41 | 显示全部楼层
embeddev_1 发表于 2014-10-21 11:32
楼主!我测出问题来了,在IE里面可以打开,在360浏览器里面打不开,有时间查下是哪里的bug吧!

...

浏览器的原因啊
阿莫不是封杀360吗?难道把我上传上的代码给改了??这么强...

等下安装个360试试看是哪里的问题,多谢

出0入0汤圆

 楼主| 发表于 2014-10-21 11:42:11 | 显示全部楼层
配置完,还少了一个固件升级的功能,弄好了再放上去

出0入0汤圆

发表于 2014-10-21 11:48:26 | 显示全部楼层
embeddev_1 发表于 2014-10-21 11:32
楼主!我测出问题来了,在IE里面可以打开,在360浏览器里面打不开,有时间查下是哪里的bug吧!

...

低调点,这儿也有敏感字。

出0入0汤圆

发表于 2014-10-21 11:51:34 | 显示全部楼层
请教楼主,这个简单的http,ROM的消耗情况?

出0入0汤圆

 楼主| 发表于 2014-10-21 12:26:15 | 显示全部楼层
styleno1 发表于 2014-10-21 11:51
请教楼主,这个简单的http,ROM的消耗情况?

全部程序,加上网页,一共19.2KB

出0入0汤圆

发表于 2014-10-21 13:52:31 | 显示全部楼层
傻彪5213 发表于 2014-10-21 12:26
全部程序,加上网页,一共19.2KB

谢回复。这还剩20K左右ROM,考虑加个类似的WEB端设置接口。

出0入0汤圆

发表于 2014-10-21 13:55:49 | 显示全部楼层
这么厉害,观摩学习一下!!!

出0入0汤圆

发表于 2014-10-21 16:03:34 | 显示全部楼层
学习一下

出0入0汤圆

 楼主| 发表于 2014-10-21 16:07:10 | 显示全部楼层
styleno1 发表于 2014-10-21 13:52
谢回复。这还剩20K左右ROM,考虑加个类似的WEB端设置接口。

不客气。20K左右的ROM的话,应该足够了。有一个SPI接口驱动w5500就可以了。

出0入0汤圆

 楼主| 发表于 2014-10-21 16:08:32 | 显示全部楼层
liuzhe910422 发表于 2014-10-21 13:55
这么厉害,观摩学习一下!!!

多谢鼓励,大家一起学习。
近期准备把网页固件升级也做上

出0入0汤圆

 楼主| 发表于 2014-10-21 16:09:04 | 显示全部楼层

大家一起学习,现在对联网的需求比较多

出0入0汤圆

发表于 2014-10-21 16:23:17 | 显示全部楼层
web api,最近也在搞这个

出0入0汤圆

 楼主| 发表于 2014-10-22 10:08:43 | 显示全部楼层
spy2008 发表于 2014-10-21 16:23
web api,最近也在搞这个

请问你用的是什么以太网接口芯片?如果也使用w5500的话可以一起讨论...

出0入0汤圆

发表于 2014-10-22 10:10:40 | 显示全部楼层
傻彪5213 发表于 2014-10-22 10:08
请问你用的是什么以太网接口芯片?如果也使用w5500的话可以一起讨论...

网上有个W5500的例程 已经带通过WEB升级功能了

出0入0汤圆

 楼主| 发表于 2014-10-22 10:13:54 | 显示全部楼层
WXF_mabg 发表于 2014-10-22 10:10
网上有个W5500的例程 已经带通过WEB升级功能了

多谢,之前没看到。能发一下链接或者直接贴出来吗?我正准备加网页升级功能呢

出0入0汤圆

发表于 2014-10-22 10:42:46 | 显示全部楼层
傻彪5213 发表于 2014-10-22 10:08
请问你用的是什么以太网接口芯片?如果也使用w5500的话可以一起讨论...

双网口,DP83848一个,另外用5500扩了一个

出0入0汤圆

发表于 2014-10-22 12:35:57 | 显示全部楼层
W5500 WEB CAMMERA 带web升级功能哦

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-10-22 14:14:05 | 显示全部楼层
tomyqg 发表于 2014-10-22 12:35
W5500 WEB CAMMERA 带web升级功能哦

多谢,这个还是HTML5的啊,可以学习学习...

出0入0汤圆

 楼主| 发表于 2014-10-22 22:11:36 | 显示全部楼层
自己顶一下,呵呵

出100入101汤圆

发表于 2014-10-22 22:30:20 | 显示全部楼层
w5500是什么价位?

出100入101汤圆

发表于 2014-10-22 22:34:51 | 显示全部楼层
tomyqg 发表于 2014-10-22 12:35
W5500 WEB CAMMERA 带web升级功能哦

这个图像速度如何?有测试么?

出0入0汤圆

发表于 2014-10-22 22:50:41 | 显示全部楼层
好东西啊    收藏

出0入0汤圆

发表于 2014-10-23 06:01:42 来自手机 | 显示全部楼层
我也老早实现了,未用java,json等

出0入0汤圆

发表于 2014-10-23 08:09:36 | 显示全部楼层
stm32f103   w5500  实现 网页配置

出0入0汤圆

发表于 2014-10-23 09:41:45 | 显示全部楼层
必须的支持,鼎鼎。
没有玩过W5000 。

出0入0汤圆

发表于 2014-10-23 10:39:14 | 显示全部楼层
mark  学习学习  很高深的样子

出0入0汤圆

 楼主| 发表于 2014-10-23 11:39:28 | 显示全部楼层
fengyunyu 发表于 2014-10-22 22:34
这个图像速度如何?有测试么?

这个要请tomyqg来回答,我还没测试...

出0入0汤圆

 楼主| 发表于 2014-10-23 11:40:51 | 显示全部楼层
wxws_wxws 发表于 2014-10-23 06:01
我也老早实现了,未用java,json等

牛,用javascript和json主要用户体验好点

出100入101汤圆

发表于 2014-10-23 12:06:04 | 显示全部楼层
傻彪5213 发表于 2014-10-23 11:39
这个要请tomyqg来回答,我还没测试...

w5500是什么价位?

出0入0汤圆

 楼主| 发表于 2014-10-24 11:23:36 | 显示全部楼层
fengyunyu 发表于 2014-10-23 12:06
w5500是什么价位?

还没买过芯片,大概13块钱左右?请卖芯片的来回答

出0入0汤圆

发表于 2014-10-25 09:06:34 | 显示全部楼层
楼主请教下w5500做tcp server初始化的时候,假如有多个链接(最多8个),可否使用同一个端口

   for(i=0;i<8;i++)
     Write_SOCK_2_Byte(i, Sn_PORT, 502);

  也就是我有多个客户端同时链接502端口这个server?这样是否可行?

出0入0汤圆

 楼主| 发表于 2014-10-25 11:47:32 | 显示全部楼层
embeddev_1 发表于 2014-10-25 09:06
楼主请教下w5500做tcp server初始化的时候,假如有多个链接(最多8个),可否使用同一个端口

   for(i=0;i ...

各个socket是相对独立的,可以使用不同的socket侦听相同的端口的。

出0入0汤圆

发表于 2014-10-27 10:27:38 | 显示全部楼层
  楼主,再请教下怎么区分收到收到的数据是httpserver请求数据还是一般的例如modbustcp之类的数据呢?
我想把2种都加进去!

出0入0汤圆

发表于 2014-10-27 19:56:41 | 显示全部楼层
embeddev_1 发表于 2014-10-27 10:27
楼主,再请教下怎么区分收到收到的数据是httpserver请求数据还是一般的例如modbustcp之类的数据呢? {:bi ...

  顶!

出0入0汤圆

发表于 2014-10-27 20:26:23 来自手机 | 显示全部楼层
肯定2个端口来实现比较好

出0入0汤圆

发表于 2014-10-28 08:22:49 | 显示全部楼层
看着不错,不懂,顶一下!

出0入0汤圆

 楼主| 发表于 2014-10-28 12:11:46 | 显示全部楼层
embeddev_1 发表于 2014-10-27 10:27
楼主,再请教下怎么区分收到收到的数据是httpserver请求数据还是一般的例如modbustcp之类的数据呢? {:bi ...

没太看明白你的问题~ http请求数据都有http头的,根据这个判断http的请求啊

出0入0汤圆

发表于 2014-10-28 12:23:35 | 显示全部楼层
傻彪5213 发表于 2014-10-28 12:11
没太看明白你的问题~ http请求数据都有http头的,根据这个判断http的请求啊

  嗯!就是这个意思,这个http头有什么说明文档麽?我现在是在字符串里面查找"GET" "HEAD" "POST"来判断http请求,但是害怕有遗漏的!

出0入0汤圆

 楼主| 发表于 2014-10-28 14:58:21 | 显示全部楼层
embeddev_1 发表于 2014-10-28 12:23
嗯!就是这个意思,这个http头有什么说明文档麽?我现在是在字符串里面查找"GET" "HEAD" "POST"来判断h ...

这样做就行了,只要代码写好,不会有遗漏的^^

出0入0汤圆

发表于 2014-11-8 12:38:25 | 显示全部楼层
MARK.......

出0入0汤圆

发表于 2014-11-12 10:08:36 | 显示全部楼层
楼主,因为需要我开放了修改mac地址功能,发现5s以后老是不能重启httpserver,不知道什么原因,一直倒数到负数!只有手动复位单片机并重启ie

出0入0汤圆

发表于 2014-11-12 10:09:02 | 显示全部楼层
傻彪5213 发表于 2014-10-21 10:44
不需要任何工具的,webpage.h里面就是html

楼主,因为需要我开放了修改mac地址功能,发现5s以后老是不能重启httpserver,不知道什么原因,一直倒数到负数!只有手动复位单片机并重启ie

出0入0汤圆

 楼主| 发表于 2014-11-12 14:17:09 | 显示全部楼层
embeddev_1 发表于 2014-11-12 10:09
楼主,因为需要我开放了修改mac地址功能,发现5s以后老是不能重启httpserver,不知道什么原因,一直倒数到 ...

把mac地址也修改了啊。
估计是电脑arp表没有更新的问题,在修改好mac地址后,同时也在pc的dos窗口执行 arp -d命令,把当前pc的arp表删除,应该就能解决这个问题。

我没有试啊,你试试看能否解决。

出0入0汤圆

发表于 2014-11-25 20:47:09 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

发表于 2014-11-25 22:24:16 | 显示全部楼层
谢谢分享。

出0入0汤圆

发表于 2014-11-25 22:38:38 | 显示全部楼层
有试过IE浏览器吗?HTTP协议解析自己做的还是移植的?

出0入0汤圆

发表于 2014-11-25 22:42:18 | 显示全部楼层
去年在上家做的,贴出来吧:
/*********************************************************************************************************
** Function name:       HTTP_ServerInit
** Descriptions:        http服务
** input parameters:    port:服务端口
                        POST_handler:收到POST的处理
** output parameters:   无
** Returned value:      无
*********************************************************************************************************/
void HTTP_ServerProcess(struct netbuf *rcv)
{
    static unsigned short cnt = 0;
    static enHttpRcvState state = HeadNotRcvComplete;
    unsigned short temp, len, lenparam = 0;
    INT8S err;
    INT8U *plenparam, *pData, *pPostData;
   
    if (state == HeadNotRcvComplete)
    {
        //从TCP端口复制数据到HTTP缓冲区
        len = netbuf_len(rcv);
        len = (HTTP_RX_BUF_SIZE - cnt - 1) < len ? (HTTP_RX_BUF_SIZE - cnt - 1) : len;
        netbuf_copy(rcv, HTTP_Rx_Buf + cnt, len);
        cnt += len;
        netbuf_delete(rcv);
        HTTP_Rx_Buf[cnt] = '\0';    // 以使缓冲区的数据可被看做字符串,可以使用库的字符串操作函数

        pData = strstr(HTTP_Rx_Buf, "\r\n\r\n");
        if (pData)           //说明HTTP报文头部接收完成
        {
            if (!memcmp(HTTP_Rx_Buf, "GET", 3))
            {
                HttpPostSeg.type = GET;
                HTTP_GetFileName(HttpPostSeg.filename, 5);
               
                goto process_and_reply;
            }
            else if (!memcmp(HTTP_Rx_Buf, "POST", 4))
            {
                HttpPostSeg.type = POST;
                HTTP_GetFileName(HttpPostSeg.filename, 6);
               
                pPostData = pData + 4;
                plenparam = strstr(HTTP_Rx_Buf, "Content-Length:");
                if (plenparam)
                {
                    plenparam += 15;
                    while (*plenparam != '\r')   //\r
                    {
                        if (*plenparam > 0x29 && *plenparam < 0x40)     //'0'~'9'
                        {
                            lenparam = *plenparam - 0x30 + lenparam * 10;
                        }
                        plenparam++;
                    }
                    
                    if (HTTP_POST_DATA_SIZE < lenparam)
                    {
                        //POST报文的POST数据量大于HTTP_POST_DATA_SIZE,返回501错误页面
                        netconn_write(  WebConn,
                                        page501,
                                        sizeof(page501) - 1,
                                        NETCONN_COPY);
                        goto reply;
                    }
                    
                    HttpPostSeg.postdatalen = lenparam;
                    temp = cnt - ((INT32U)pPostData - (INT32U)HTTP_Rx_Buf);
                    HttpPostSeg.postdatacnt = temp;
                    memcpy(HttpPostSeg.postdata, pPostData, temp);
                    HttpPostSeg.postdata[temp] = 0;
                    
                    // 如果接收的数据等于请求报文中指定的数据量
                    if (HttpPostSeg.postdatalen <= HttpPostSeg.postdatacnt)
                    {
                        HttpPostSeg.postdata[HttpPostSeg.postdatalen] = 0;
                        goto process_and_reply;
                    }
                    else
                    {
                        state = PostDataNotRcvComplete;
                        return;
                    }
                }
                else
                {   
                    //POST报文应该有Content-Length字段,否则返回501错误页面
                    netconn_write(  WebConn,
                                    page501,
                                    sizeof(page501) - 1,
                                    NETCONN_COPY);
                    goto reply;
                }
            }
            else
            {
                //不支持的请求,返回501错误页面
                netconn_write(  WebConn,
                                page501,
                                sizeof(page501) - 1,
                                NETCONN_COPY);
                goto reply;
            }
        }
        else if (cnt == (HTTP_RX_BUF_SIZE - 1))  //没接收完,但请求报文的长度超出缓冲区大小,返回错误413页面
        {
            netconn_write(  WebConn,
                            page413,
                            sizeof(page413) - 1,
                            NETCONN_COPY);
            goto reply;
        }
        else
        {
            return;
        }
    }
    else if (state == PostDataNotRcvComplete)
    {
        len = netbuf_len(rcv);
        
        if (HttpPostSeg.postdatacnt + len > HTTP_POST_DATA_SIZE)
        {
            netconn_write(  WebConn,
                            page501,
                            sizeof(page501) - 1,
                            NETCONN_COPY);
            goto reply;
        }
        netbuf_copy(rcv, HttpPostSeg.postdata + HttpPostSeg.postdatacnt, len);
        netbuf_delete(rcv);
        HttpPostSeg.postdatacnt += len;
        
        if (HttpPostSeg.postdatalen <= HttpPostSeg.postdatacnt)
        {
            HttpPostSeg.postdata[HttpPostSeg.postdatalen] = 0;
            goto process_and_reply;
        }
        else
        {
            return;
        }
    }
        
process_and_reply:   
    HTTP_CreateContent(&HttpPostSeg);
reply:
    err = netconn_close(WebConn);
    err = netconn_delete(WebConn);
#ifdef DEBUG
    while (err != ERR_OK);
#endif
    WebConn = NULL;
    cnt = 0;
    state = HeadNotRcvComplete;
}

出0入16汤圆

发表于 2014-11-25 23:41:56 来自手机 | 显示全部楼层
不错,学习了!

出0入0汤圆

 楼主| 发表于 2014-12-15 23:08:01 | 显示全部楼层
zhenghe 发表于 2014-11-25 22:42
去年在上家做的,贴出来吧:
/************************************************************************ ...

威武^^
再学习学习,不过这里贴的IE浏览器也显示正常,好像IE6有点问题,不过现在可以忽略IE6了

出0入0汤圆

发表于 2014-12-26 10:54:49 | 显示全部楼层
傻彪5213 发表于 2014-10-21 11:25
能ping通一般就能打开的,你的是什么板子啊?

能ping通,不一定能连的。

出0入0汤圆

发表于 2014-12-27 18:19:19 | 显示全部楼层
学习!收藏!

出0入16汤圆

发表于 2014-12-28 08:26:13 来自手机 | 显示全部楼层
正需要,

出0入0汤圆

发表于 2014-12-28 08:32:52 | 显示全部楼层
embeddev_1 发表于 2014-10-25 09:06
楼主请教下w5500做tcp server初始化的时候,假如有多个链接(最多8个),可否使用同一个端口

   for(i=0;i ...

当然可以,502貌似是modbustcp协议留的啊

出0入0汤圆

发表于 2015-1-15 18:50:38 | 显示全部楼层
收藏备用!

出0入0汤圆

发表于 2015-3-19 09:35:32 | 显示全部楼层
不错,学习了!

出0入0汤圆

发表于 2015-3-19 15:21:47 | 显示全部楼层
刚好工作上需要用到,收下了~!

出0入0汤圆

发表于 2015-3-19 18:41:39 | 显示全部楼层
不知楼主如何实现多个按键请求的处理?

出0入0汤圆

发表于 2015-3-19 21:50:19 | 显示全部楼层
以前一直用enc28j60,后来改用w550,一直再用

出0入0汤圆

 楼主| 发表于 2015-3-20 15:20:30 | 显示全部楼层
fangy 发表于 2015-3-19 18:41
不知楼主如何实现多个按键请求的处理?

这个好处理啊,这个网页上不是有一个按钮吗?可以参考这个...

也可以用ajax进行后台提交,这个我正在做...做好了分享^^

出0入0汤圆

发表于 2015-3-20 15:30:10 | 显示全部楼层
傻彪5213 发表于 2015-3-20 15:20
这个好处理啊,这个网页上不是有一个按钮吗?可以参考这个...

也可以用ajax进行后台提交,这个我正在做. ...

这个POST请求方式无法处理多个按键。当然在这方面我是个菜鸟。勿拍

出0入0汤圆

 楼主| 发表于 2015-3-20 15:48:09 | 显示全部楼层
本帖最后由 傻彪5213 于 2015-3-20 15:49 编辑
fangy 发表于 2015-3-20 15:30
这个POST请求方式无法处理多个按键。当然在这方面我是个菜鸟。勿拍


其实post也是可以的,就是把不同的按钮和要提交的内容筐到不同的form里面,把form的action和提交页面对应起来就可以了。举个例子:

<form id='frm1' name='f1' action='f1.cgi' method='post'>
<input type='text' name='f1t1' />
<input type='submit' value='submit 1' />
</form>

<form id='frm2' name='f2' action='f2.cgi' method='post'>
<input type='text' name='f2t2' />
<input type='submit' value='submit 2' />
</form>

这样,f1t1的内容就提交到了f1.cgi,f2t2的内容就提交到了 f2.cgi。

然后再固件里面,分别处理这两页面就可以了。
不知道你能看明白不能^^

出0入0汤圆

发表于 2015-3-20 17:23:00 | 显示全部楼层
专门下载了 看看  确实不错  不过 没看到JSON?  这里面貌似没JSON

出0入0汤圆

 楼主| 发表于 2015-3-20 18:24:47 | 显示全部楼层
315936392 发表于 2015-3-20 17:23
专门下载了 看看  确实不错  不过 没看到JSON?  这里面貌似没JSON

谢谢鼓励^^

网页的最后有一个w5500.js,这个其实就是回调上面的js函数,固件生成w5500.js的时候,js函数里面的变量就是一段json^^

出0入0汤圆

发表于 2015-3-20 18:45:02 | 显示全部楼层
mark  w5500 实现网页配置

出0入0汤圆

发表于 2015-3-20 18:59:26 | 显示全部楼层
不错,谢谢楼主分享。mark:stm32 网页配置

出0入0汤圆

发表于 2015-3-20 19:01:19 | 显示全部楼层
mark                           

出0入0汤圆

发表于 2015-3-21 16:36:17 | 显示全部楼层
傻彪5213 发表于 2015-3-20 15:48
其实post也是可以的,就是把不同的按钮和要提交的内容筐到不同的form里面,把form的action和提交页面对应 ...

我考虑使用

xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();

方式产生"GET"请求,不知路径"demo_get.asp" 参数在STM32 中是什么参数


一直无法产生“GET” 请求,

出0入0汤圆

 楼主| 发表于 2015-3-23 11:20:10 | 显示全部楼层
fangy 发表于 2015-3-21 16:36
我考虑使用

xmlhttp.open("GET","demo_get.asp",true);

稍等给你发个ajax的例子,我也正在测试^^

出0入4汤圆

发表于 2015-3-23 17:06:38 | 显示全部楼层
借鉴一下,正在做类似的东东,平时都是写上位机调试软件进行配置的

出0入0汤圆

发表于 2015-6-11 15:07:36 | 显示全部楼层
完全不懂的看过了

出0入0汤圆

发表于 2015-6-15 22:25:09 | 显示全部楼层
不会网页编程,用户体验上不去啊,着急。

出0入0汤圆

发表于 2015-6-28 00:29:51 来自手机 | 显示全部楼层
收藏先,谢谢

出0入0汤圆

发表于 2015-6-28 01:06:16 | 显示全部楼层
看截图,有点像w5500的官方demo

出0入0汤圆

发表于 2015-6-29 09:29:42 | 显示全部楼层
有空玩下。。

出0入0汤圆

发表于 2015-9-16 17:49:36 | 显示全部楼层
学习了,很好的东西

出0入0汤圆

发表于 2015-9-17 09:14:35 | 显示全部楼层
好资料,Mark....

出0入0汤圆

发表于 2015-10-15 10:11:03 | 显示全部楼层

学习了,备份一下

出0入0汤圆

发表于 2015-10-27 10:25:41 | 显示全部楼层
最近正在学习这个,楼主的资料很有帮助

出0入0汤圆

发表于 2015-11-19 08:23:06 | 显示全部楼层
好东东。收藏。

出0入0汤圆

发表于 2015-11-25 06:25:12 | 显示全部楼层
资料不错

出0入0汤圆

 楼主| 发表于 2015-12-3 16:06:44 | 显示全部楼层

谢谢  

出0入0汤圆

发表于 2016-1-28 17:11:41 | 显示全部楼层
这个必须MARK一下啊

出5入10汤圆

发表于 2016-3-12 11:07:46 | 显示全部楼层
楼主,我想咨询一下,你这个网页是怎么编辑的?是用专门的工具吗?

出0入0汤圆

 楼主| 发表于 2016-4-5 15:36:12 | 显示全部楼层
涵潇舒雅 发表于 2016-3-12 11:07
楼主,我想咨询一下,你这个网页是怎么编辑的?是用专门的工具吗?

网页是通过HTML5编写的,网上有很多工具,你可以自己选择。我选用Dreamware。

出0入0汤圆

发表于 2016-4-5 15:51:48 | 显示全部楼层
不错~ 用web管理方便许多啊

出0入0汤圆

发表于 2019-6-23 21:10:59 | 显示全部楼层
学习了,谢谢

出0入0汤圆

发表于 2019-6-23 22:31:23 | 显示全部楼层
谢谢分享,这个好玩

出0入0汤圆

发表于 2020-9-25 17:48:22 | 显示全部楼层
这个好玩
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 17:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表