15.37、 以太网实现HTTP服务器实验.pdf

上传人:紫竹语嫣 文档编号:5514375 上传时间:2020-05-27 格式:PDF 页数:20 大小:526.41KB
返回 下载 相关 举报
15.37、 以太网实现HTTP服务器实验.pdf_第1页
第1页 / 共20页
15.37、 以太网实现HTTP服务器实验.pdf_第2页
第2页 / 共20页
15.37、 以太网实现HTTP服务器实验.pdf_第3页
第3页 / 共20页
15.37、 以太网实现HTTP服务器实验.pdf_第4页
第4页 / 共20页
15.37、 以太网实现HTTP服务器实验.pdf_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《15.37、 以太网实现HTTP服务器实验.pdf》由会员分享,可在线阅读,更多相关《15.37、 以太网实现HTTP服务器实验.pdf(20页珍藏版)》请在三一文库上搜索。

1、 以太网实现以太网实现HTTP服务器实验服务器实验 10/100 以太网媒体访问控制器(MAC)是基于 ARM Cortex-M3 的 STM32 互联系列 (Connectivity Line)微控制器的特色亮点之一。 STM32 神舟 IV 号开发板使用的即是 LQFP100 封装的 STM32 互联系列微控制器 STM32F107VC。 STM32 神舟 IV 号开发板支持 10M/100M 自适应, 全双工半双工自适应。 她的优异性能可以满足需要灵活的工业标准连接功能的挑战 性需求。 我们将陆续介绍神舟 IV 号开发板太网硬件平台的建立原理和方法,以及基于神舟 IV 号开发板太网硬件平

2、台实现网络远程登录 Telnet 功能、TFTP 文件传输功能和 HTTP 网页功 能等常见的应用实例。 当我们想浏览一个网站的时候, 只要在浏览器的地址栏里输入网站的地址就可以了, 例 如:按回车键,但是在浏览器的地址栏里面出现的却是:http:/www. ,你知道为什么会多出一个“http”吗?学完本章节你就能得到答案。 HTTP 协议是一种应用层协议,HTTP 是 HyperText Transfer Protocol(超文本传输协议) 的英文缩写。HTTP 可以通过传输层的 TCP 协议在客户端和服务器之间传输数据。HTTP 协 议主要用于 Web 浏览器和 Web 服务器之间的数据交

3、换。我们在使用 IE 或 Firefox 浏览网页 或下载 Web 资源时,通过在地址栏中输入 http:/host:port/path,开头的 4 个字母 http 就相当 于通知浏览器使用 HTTP 协议来和 host 所确定的服务器进行通讯。在 Internet 上,HTTP 通 讯通常发生在 TCP/IP 连接之上。缺省端口是 TCP80,但其它的端口也是可用的。 那么就让我们通过神舟 IV 号开发板太网硬件平台认识一下 HTTP 协议,实现一个静态 网页和两个动态网页的实例。 ? 意义与作用意义与作用 有了 STM32 神舟 IV 号开发板以太网硬件平台,以及已经移植好的 TCP/I

4、P 协议栈,我 们可以很轻松的实现各种网络应用。 无论你是从事网络程序开发,还是 Web 开发,或是网站的维护人员;都必须对 HTTP 协议有一个比较深入的了解。因此,HTTP 协议不仅是 Internet 上应用最为广泛的协议,也 是应用协议家族中比较简单的一种入门级协议;而且所有的 Web 服务器无一例外地都支持 HTTP 协议。这也充分地说明,对于那些开发网络程序,尤其是开发各种类型的 Web 服务 器的开发人员, 透彻地掌握 HTTP 协议将对你所开发的基于 HTTP 协议的系统产生直接的影 响。 本章节我们来介绍STM32神舟IV号开发板采用RMII (精简的独立于介质的接口) 连接

5、 STM32F107VC 处理器 MAC 和常用的以太网 PHY 芯片 DM9161,支持 10M/100M 自适应, 全双工半双工自适应的太网硬件平台。以及在 STM32 神舟 IV 号开发板以太网硬件平台上 实现 HTTP 服务器的方法。通过本实验,我们将了解以太网的一些基本知识,使我们以后设 计的产品功能更丰富,使用更方便。 ? 实验原理实验原理 注:本实验的以太网硬件原理与前面“以太网实现Telnet远程登录实验”对 应章节完全相同,此处不再重复,请参考“以太网实现Telnet远程登录实验”对 应章节。 HTTP 协议简介协议简介 HTTP 协议是一种应用层协议,HTTP 是 Hype

6、rText Transfer Protocol(超文本传输协议) 的英文缩写。HTTP 可以通过传输层的 TCP 协议在客户端和服务器之间传输数据。HTTP 协 议主要用于 Web 浏览器和 Web 服务器之间的数据交换。我们在使用 IE 或 Firefox 浏览网页 或下载 Web 资源时,通过在地址栏中输入 http:/host:port/path,开头的 4 个字母 http 就相当 于通知浏览器使用 HTTP 协议来和 host 所确定的服务器进行通讯。 HTTP 协议诞生于上世纪 90 年代初;第一个被广泛使用的版本是 HTTP0.9。这个最初 的版本非常简陋, 它只向服务器发送一个

7、非常简单的请求, 而服务器也会返回一个很简单的 响应以及相应的 HTML 文本。 在随后的 HTTP1.0 中, 增加了很多在 HTTP0.9 中没有的特性, 如增加了资源重定位,大量的状态响应码等。在最新的 HTTP1.1 中,对 HTTP1.0 做了更进 一步的改进,除了增加了一些请求方法外,最大的改进就是可以使 HTTP 保持连接状态。这 对于一些频繁传输数据的应用是非常有益的。由于 HTTP 协议已经达到了它的目标,因此, 负责制定规范的 W3C 已经停止了对 HTTP 的改进(和 HTTP 相关的协议或扩展并未停止) , 所以,HTTP1.1 将是 HTTP 协议的最后一个版本。 H

8、TTP 的工作方式分类如下: HTTP 协议采用了请求/响应的工作方式。基于 HTTP1.0 协议的客户端在每次向服务器 发出请求后,服务器就会向客户端返回响应消息(包括请求是否正确以及所请求的数据) , 在确认客户端已经收到响应消息后,服务端就会关闭网络连接(其实是关闭 TCP 连接) 。在 这个数据传输过程中,并不保存任何历史信息和状态信息,因此,HTTP 协议也被认为是无 状态的协议,图 1 描绘了 HTTP1.0 协议的通讯过程。 图表 1 HTTP1.0 协议的通讯过程 在 HTTP1.0 协议中, 当 Web 浏览器发出请求时, 就意味着一个请求/响应会话已经开始。 在请求、响应结

9、束后,服务器就会立刻关闭这个连接。这种会话方式虽然简便,但它会带来 另外一个问题。如果客户端浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源,如 JavaScript 文件、图像文件、CSS 文件等;当浏览器每遇到这样一个 Web 资 源,就会建立一个 HTTP 会话。如果这样的资源很多的话,就会加重服务器的负担,同时也 会影响客户端浏览器加载 HTML 等 Web 资源的效率。 在对上述的缺陷进行改进和完善后,HTTP1.1 协议进入了我们的视线。HTTP1.1 和 HTTP1.0 相比较而言,最大的区别就是增加了持久连接支持。当客户端使用 HTTP1.1 协

10、议 连接到服务器后,服务器就将关闭客户端连接的主动权交还给客户端;也就是说,在客户端 向服务器发送一个请求并接收以一个响应后, 只要不调用 Socket 类的 close 方法关闭网络连 接,就可以继续向服务器发送 HTTP 请求。当 HTML 中含有其他的 Web 资源时,浏览器就 可以使用同一个网络连接向下载这些资源, 这样就可以大大减轻服务器的压力。 图 2 演示了 这一过程。 图表 2 HTTP1.1 协议的通讯过程 HTTP1.1 除了支持持久连接外,还将 HTTP1.0 的请求方法从原来的三个(GET、POST 和 HEAD)扩展到了八个(OPTIONS、GET、HEAD、POST

11、、PUT、DELETE、TRACE 和 CONNECT) 。而且还增加了很多请求和响应字段,如上述的持久连接的字段 Connection。 这个字段有两个值,Close 和 Keep-Alive。如果使用 Connection:Close,则关闭 HTTP1.1 的 持久连接的功能,要打开 HTTP1.1 的持久连接的功能,必须使用 Connection:Keep-Alive, 或者不加 Connection 字段(因为 HTTP1.1 在默认情况下就是持久连接的) 。除了这些,还提 供了身份认证、状态管理和缓存(Cache)等相关的请求头和响应头。 HTTP是一个属于应用层的面向对象的协议,

12、由于其简捷、快速的方式,适用于分布式 超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前 在WWW 中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且 HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议的主要特点可概括如 下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送 请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器 联系的类型不同。由于HTTP协议简单,使得 HTTP服务器的程序规模小,因而通信速度很 快。 3.

13、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加 以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客 户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态 意味着如果后续处理需要前面的信息, 则它必须重传, 这样可能导致每次连接传送的数据量 增大。另一方面,在服务器不需要先前信息时它的应答就较快。 我们再通俗的讲解一下我们再通俗的讲解一下HTTP协议:协议: 当我们想浏览一个网站的时候, 只要在浏览器的地址栏里输入网站的地

14、址就可以了, 例 如 : 按 回 车 , 但 是 在 浏 览 器 的 地 址 栏 里 面 出 现 的 却 是 : http:/,你知道为什么会多出一个“http”吗? HTTP 协议是什么协议是什么 我们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源 定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在 浏览器的地址框中输入一个URL或是单击一个超级链接时, URL就确定了要浏览的地址。 浏 览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂 亮的网页。因此,在我们认

15、识HTTP之前,有必要先弄清楚URL的组成,例如: http:/ 1.http:/: 代表超文本传输协议, 通知 服务器显示 Web 页, 通常不用输入; 2.www:代表一个 Web(万维网)服务器; 3. 4. shop/:为该服务器上的子目录,就好像我们的文件夹; 5. index.jsp:index.jsp 是文件夹中的一个 HTML 文件(网页)。 我们知道,Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层 (Applicationlayer),它包含所有高层的协议。高层协议有:文件传输协议FTP、电子邮件传 输协议SMTP、域名系统服务DNS

16、、网络新闻传输协议NNTP和HTTP协议等。 HTTP协议(Hypertext Transfer Protocol, 超文本传输协议)是用于从WWW服务器传输 超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证 计算机正确快速地传输超文本文档, 还确定传输文档中的哪一部分, 以及哪部分内容首先显 示(如文本先于图形)等。这就是你为什么在浏览器中看到的网页地址都是以“http:/”开头 的原因。 自WWW诞生以来,一个多姿多彩的资讯和虚拟的世界便出现在我们眼前,可是我们怎 么能够更加容易地找到我们需要的资讯呢?当决定使用超文本作为WWW文档的标准格式 后,于是在19

17、90年,科学家们立即制定了能够快速查找这些超文本文档的协议,即HTTP协 议。经过几年的使用与发展,得到不断的完善和扩展。 HTTP 是怎样工作的是怎样工作的 既然我们明白了URL的构成, 那么HTTP是怎么工作呢?我们接下来就要讨论这个问题。 由于HTTP协议是基于请求/响应范式的(相当于客户机/服务器)。一个客户机与服务器建 立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本 号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给 予相应的响应信息, 其格式为一个状态行, 包括信息的协议版本号、 一个成功或错误的代码, 后边是M

18、IME信息包括服务器信息、实体信息和可能的内容。 许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请 求。最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。在Internet 上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP80,但其它的端口也是可用的。 但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着 一个可靠的传输。 这个过程就好像我们打电话订货一样, 我们可以打电话给商家, 告诉他我们需要什么规 格的商品,然后商家再告诉我们什么商品有货,什么商品缺货。这些,我们是通过电话线用 电话联系

19、(HTTP是通过TCP/IP),当然我们也可以通过传真,只要商家那边也有传真。 以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过程。 在WWW中, “客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间, 即在某个连接中的客户在另一个连接中可能作为服务器。 基于HTTP协议的客户/服务器模式 的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。这 就好像上面的例子,我们电话订货的全过程。 其实简单说就是任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于 响应用户请求。你的浏览器是HTTP客户,向服务器发送请求,当

20、浏览器中输入了一个开始 文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地 址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程 中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括: 要传送的数据;控制信息,即告诉网络怎样处理数据包。TCP/IP决定了每个数据包的格式。 如果事先不告诉你,你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。 也就是说商家除了拥有商品之外, 它也有一个职员在接听你的电话, 当你打电话的时候, 你的声音转换成各种复杂的数据, 通过电话线传输到对方的电话机,

21、对方的电话机又把各种 复杂的数据转换成声音, 使得对方商家的职员能够明白你的请求。 这个过程你不需要明白声 音是怎么转换成复杂的数据的。 ? 硬件设计硬件设计 神舟IV号开发板的处理器STM32F107内部以太网模块与外部PHY芯片采用RMII接口的 连接图如下所示:采用RMII接口比MII接口可以节约近一半管脚资源。 以太网以太网 PHY 芯片芯片 DM9161A 工作在工作在 RMII 模式时需要外部提供模式时需要外部提供 50M 时钟输入,神舟时钟输入,神舟 IV 号开发板上可以通过位号为号开发板上可以通过位号为 U9 的的 50M 有源晶振来提供,也可以由有源晶振来提供,也可以由 ST

22、M32F107 的的 PA8 pin (MCO)管教输出提供。默认使用管教输出提供。默认使用 STM32F107 的的 PA8 pin (MCO)为为 DM9161A 提供提供 50M 时钟输入。时钟输入。 图表 3 STM32F107 以太网 RMII 连接图 神舟 IV 号开发板采用高性价比的 DM9161A 作为 10M/100M 以太网 PHY 芯片,采用 RMII 接口与连接,标准 RJ45 接口,支持平行交叉网线自适应。其原理图如所示。 图表 4 以太网接口原理图 DM9161A 是一款在嵌入式系统中应用的极为普遍的以太网 PHY 芯片。DM9161A 符合 IEEE802.3.1

23、0BASE-T/100BASE-TX 协议,符合 ANSIX3T12TP-PMD1995 标准,集成 10BASE-T,100BASE-TX 收发器,支持 MII/RMII 接口,支持中继模式和节点模式转换,支 持全工和半工模式转换,含可触发中断的 MII/RMII 管理接口,支持低功耗模式,采用 0.35 纳米 COMS 工艺,3.3V 供电, 48-pin PQFP 小封装(11cm)。 ? 软件设计软件设计 本章节我们主要介绍在 STM32 神舟 IV 号开发板以太网硬件平台上实现 HTTP 服务器 协议,实现一个静态网页和两个动态网页的实例。所以我们软件部分也主要讲解如何在 HTTP

24、服务器的标准端口 80 端口实现 HTTP 协议网页服务器功能相关的函数。 其它如串口、 指示灯、EEPROM 和 RTC 等相关知识请参考前面对应的章节。 软件部分我们分为四部分来讲解,第一部分 Lwip 协议栈相关知识。第二部分主要介绍 网络数据包在软件处理中的流向。 第三部分介绍网络以及系统的初始化。 第四部分介绍实现 HTTP 的应用程序。 第一部分第一部分Lwip协议栈相关知识。协议栈相关知识。 Lwip协议栈相关知识设计的涉及Lwip协议的实现以及底层TCPIP相关知识和API应用 程序接口部分等,相关知识请参考附件TCP/IP 协议栈LwIP的设计与实现。该附件描述 了LwIP的

25、设计与实现。描述了在协议栈实现中以及像内存与缓冲管理这样的子系统中使用 的算法和数据结构。本文还包括LwIP的参考手册以及使用LwIP的代码例子。 第二部分主要介绍网络数据包的流向。第二部分主要介绍网络数据包的流向。 本实验软件程序处理网络数据包的大体流向是: 在收到网络数据包时产生网络中断, 在 网络中断中处理函数 ETH_IRQHandler(位于“stm32f10x_it.c”文件中)中调用 LwIP_Pkt_Handle()接收数据包并通知 Lwip 的 TCPIP 协议栈, 而真正解析处理网络数据包是 在 mian 函数中调用“System_Periodic_Handle();”来处

26、理的。 首先我们看看 main 函数,如下: main 函数主要完成然后是-最后是。 真正解析处理网络数 据包是在 mian 函数中调用“System_Periodic_Handle();”来处理的。 下面我们看看网络中断处理函数。网络中断中处理函数 ETH_IRQHandler(位于 “stm32f10x_it.c” 文件中) 中调用 LwIP_Pkt_Handle()接收网络数据包并通知 Lwip 的 TCPIP 协议栈, LwIP_Pkt_Handle()函数调用了ethernetif_input函数 ethernetif_input ()函数中的“p = low_level_input

27、(netif);”将数据接收存入 pbuf 中,然后 (move received packet into a new pbuf)的“err = netif-input(p, netif);” 最终调用了位于 “etharp.c”文件中的函数“err_t ethernet_input(struct pbuf *p, struct netif *netif)” 负责解析 通知协议栈。 也就是说最终调用了位于“etharp.c”文件中的函数“err_t ethernet_input(struct pbuf *p, struct netif *netif)”后退出中断,最后 mian 函数周期调用的

28、“System_Periodic_Handle();”函 数便会解析处理 pbuf 中的网络数据。 第三部分介绍网络以及系统的初始化。第三部分介绍网络以及系统的初始化。 以太网中断配置函数: 以太网 GPIO 管脚配置,由于是 RMII 接口使用的管脚与 MII 有所不同: 以太网配置,包括相关的时钟、MAC 参数以及 DMA 等等: DHCP协议(Dynamic Host Configuration Protocol)是设备自动获取IP地址的一种协议, 神舟四号也支持DHCP协议,DHCP协议动态IP分配的配置在文件 Utilitieslwip-1.3.1srcincludelwipopt.

29、h文件的第523行至533行 当设置为“#define LWIP_DHCP 1“时, 将启动动态IP分配的功能, 当动态IP分配失败时 才使用静态IP地址;当设置为“#define LWIP_DHCP 0“时,将关闭动态IP分配的功能,直接 使用静态IP地址。 神舟四号开发板的出厂IP地址为192.168.1.6,用户可以根据自己的实际环境修改用户期 望的地址。关于静态IP地址的设置在文件Projectsrcnetconf.c文件中中有两处地方涉及静态 IP,第一处在第118行至122行LwIP_Init函数里: 以上地址是在关闭动态IP分配的功能(即“#define LWIP_DHCP 0“

30、)时,直接使用上 述IP地址 第二处在在Projectsrcnetconf.c文件中的第333行至335行Display_Periodic_Handle函数 里 以上地址当启动动态 IP 分配的功能(即“#define LWIP_DHCP 1“) ,但是动态 IP 地址 分配超时失败时使用上述 IP 地址,您可以安装您的要求修改 IP 地址,修改后需要重新编译 软件工程并重新下载到神舟四号开发板上才能生效。 第四部分介绍实现第四部分介绍实现 HTTP 的的 WEB 服务器应用程序服务器应用程序 实现 HTTP 的应用的相关程序位于“httpd.c”文件中,首先是头文件引用与函数声明等 等: 然

31、后是 HTTP 初始化,申请资源并向协议栈注册函数,通过 pcb = tcp_new();生产一个 新的 PCB 控制块, “tcp_bind(pcb, IP_ADDR_ANY, 80);和 pcb = tcp_listen(pcb);”将新申请的 PCB 与 80 端口绑定也就是在 80 端口监听网络数据 IP_ADDR_ANY 参数表示接受来自任意 IP 的请求。 最后的“tcp_accept(pcb, http_accept);”通知协议栈当 80 端口有连接请求时调用 http _accept 函数处理该请求。 当 80 端口有连接请求时调用 http _accept 函数处理该请求,

32、以下是该函数。首先在串 口和 LCD 触摸屏打印信息提示有 HTTP 连接请求,并打印对方的 IP 地址。然后使用 “tcp_err(pcb, conn_err);和 tcp_recv(pcb, http_recv);”配置协议栈接受到数据包时相关回调函 数和出错时相关回调函数。 “tcp_arg(pcb, hs);”告诉 TCP 协议栈调用回调函数时需要传入 的参数。 “tcp_poll(pcb, http_poll, 10);” 告诉 TCP 协议栈调用周期性调用查询函数 http_poll 的周期。 议栈接受到数据包时相关回调函数“http_recv;”使用诸多 IFELSE IF来判断

33、用户请 求哪一个页面,例如“if (strncmp(data, “GET /STM32F107ADC“, 17) = 0)” 比较结果相同 则表示用户请求的是“STM32F107ADC”网页的页面。此时则调用 “fs_open(“/STM32F107ADC.html“, ” 函数获取该页面内容的地址和长度信息,最后 使用“send_data(pcb, hs);”函数将页面发送给用户接收端的 HTTP 客户端浏览器。 “tcp_sent(pcb, http_sent);”的含义是:TCP 一次发送的数据大小有限制,如果一次无法发送 全部内容,则后续调用“http_sent”函数直到全部内容发送完

34、毕后关闭本次连接。 该例程中的网页是以数组的形式存储在“fsdata.c”文件中,例如指示灯的页面内容如 下: 为了方便管理我们使用链表来维护这些数组,其结构体如下: 其内容如下: 上面提到函数“http_recv;”调用了“fs_open(“/STM32F107ADC.html“, ”函数, “fs_open”函数位于“fsdata.c”文件中,该函数搜索链表得到对应的页面数组指针地址和 数组长度信息: 上面函数“http_recv;”提到 TCP 一次发送的数据大小有限制,如果一次无法发送全部 内容,则后续调用下面的“http_sent”函数直到全部内容发送完毕后关闭本次连接。 错误处理的

35、回调函数: ? 下载与验证下载与验证 神舟IV号光盘源码目录包含本实验的工程源码,在神舟IV号光盘源码35 以太网触摸 屏STM32F107_ETH_LCD(神舟IV号)HTTP网页.rarProjectEWARMv5STM3210C -EVALExe 目录下的【以太网】STM32F107_ETH_LCD(神舟IV号3.2寸LCD).hex文件即为前面我们分析 的神舟IV号以太网HTTP网页实验编译好的固件,我们可以直接将固件下载到神舟IV号开发 板中,观察运行效果。 如果使用JLINK下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。下载固件 到神

36、舟IV号开发板小节进行操作。 如果使用USB下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。小节进行操 作。 如果使用串口下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。小节进行 操作。 如果在IAR开发环境中, 下载编译好的固件或者在线调试, 请按错误! 未找到引用源。错误! 未找到引用源。 错误!未找到引用源。错误!未找到引用源。小节进行操作。 如果在MDK开发环境中,下载编译好的固件或者在线调试,请按错误!未找到引用源。错误!未找到引用源。 错误!未找到引用源。错误!未找到引用源。小节进行操作。

37、? 实验现象实验现象 STM32 神舟神舟IV号开发板以太网实验介绍 请参照号开发板以太网实验介绍 请参照 错误! 未找到引用源。 错误! 未找到引用源。 章节的章节的 错误!未找到引用源。 小节部分。小节部分。 ? 显示用户自己的网页显示用户自己的网页 下面说明如何将神舟 IV 号 HTTP 例程的网页转换替换为用户自己的网页。 使用到的工具是神舟四号光盘“软件工具”文件夹下的“神舟 IV 号 HTTP 例程的网 页转换工具.rar”压缩包。 将需要转换的目标网页更名为“armjishu.html” ,与“神舟 IV 号 HTTP 例程的网页转换 工具.exe”放在同一文件夹下,双击“神舟 IV 号 HTTP 例程的网页转换工具.exe”即可得到 两个转换好的数组文件,分别为“ArmjishuChar.c”和“ArmjishuCharUper.c” ,他们两个的 区别是“ArmjishuChar.c”文件中十六进制的值是小写字母(例如 0xab) ,和 “ArmjishuCharUper.c”文件中十六进制的值是大写字母(例如 0xAB) 。 将数组拷贝出来,替换Utilitieslwip-1.3.1portfsdata.c 文件中的“static const char data_STM32F107_html”数组内容,即可改变打开网页时首页的界面。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料


经营许可证编号:宁ICP备18001539号-1