W5500 HTTP WEB服务器开发笔记 STM32F103单片机参考程序

W5500感觉挺火的,因为使用该芯片开发以太网硬件和软件都比较简单,一个小小的51单片机就可以瞬间变成一个WEB服务器。W5500自带16K的发送数据缓存,可以同时创建8个TCP/UDP socket连接,使用时,需要合理分配这16K的资源。

W5500的缺点也是有的,就是还是发热比较严重,不过比W5100好很多了。我在使用W5500+STM32F103设计WEB服务器时,就觉得想把网页设计的很漂亮比较困难,因为一个图片动不动就是几十K,想把jQuery包含进来发觉文件太大,后来发现Zepto.js比较适合的,压缩后就9K多一点。当然可以把一个大的文件分成好几次发送,比如把一个100K的文件分成10个部分,每次发送10K字节。不过怎么实现我还没有研究过,怎么把一个很大的网页文件分成好几次发送,反正暂时我还不知道。毕竟既然你使用单片机做WEB服务器程序,一般应该不会有需求传送很大的文件的,因为文件很大了,单片机的FLASH或者RAM容量也不够。

核心程序其实很简单的,这也是使用W5500的优势,几句代码就可以实现一个WEB服务器了,当然这样做的话同一个时刻只能支持单个用户访问,不能支持并发访问的,想要支持并发访问的话可以创建多个SOCKET呀。
    while(1)
	{
		status = getSn_SR(0);
		if (status == SOCK_INIT)
		{
			listen(0);			
		}
		else if (status == SOCK_ESTABLISHED)
		{
			if(getSn_IR(0) & Sn_IR_CON)
			{
              setSn_IR(0, Sn_IR_CON);
			}
			memset(Net_Buffer, 0, NET_BUFFER_SIZE);
			ret = recv(0, Net_Buffer, NET_BUFFER_SIZE);
			if (ret > 0)
			{
				respond();
			}
		}
		else if (status == SOCK_CLOSE_WAIT)
		{
          disconnect(0);
		}
		else if (status == SOCK_CLOSED)
		{
			ret = socket(0, Sn_MR_TCP, Host_Port, 0);
			if(ret != 0)
			{
			  while(1);
			}
		}			
	}
具体一点的可以参考以下链接:http://www.embed-net.com/thread-61-1-1.html,写的还是很好的,有STM32F103的,还有STM32F4的源代码下载。

下面是我做好的WEB服务器访问效果图,将开发版用网线与PC相连,访问192.168.1.1,效果如下:


发表于:2015-05-20 17:33:27

原文链接(转载请保留): http://www.multisilicon.com/blog/a23323847.html

友情链接: MICROIC
首页